13

我正在使用 Compact Framework 3.5,并暂时选择了 Subsonic 3.0 的自定义版本来进行数据访问。问题是我习惯于先开发模型,但也有兴趣控制我的数据库模式。因此,ActiveRecord 或 Repository 似乎都不能满足我的需求,我想使用我现有的 POCO 模型并将其映射到我现有的表。我习惯于通过 NHibernate 和实体框架来执行此操作。

经过一番调查,我似乎可以编写一个自定义 QueryMapping 来给我想要的自定义映射。然而,在我开始走这条路之前,我希望看到一些这样的例子。我似乎在网上找不到任何东西,想知道是否有人可以提供关于 Subsonic、模型优先和自定义 Table-per-Type 和 Table-per-Hierarchy 映射的经验。

4

1 回答 1

1

从 SubSonic 3.0.x 开始:

如果您想使用 POCO,您非常需要存储库——特别是 SimpleRepository。SubSonic 仅支持 table-per-type 模型。SubSonic 不支持继承。如果需要,则必须对其进行编码;但是,如果您有动力去做,那是无法实现的。

然而,SimpleRepository 确实提供了对模式的大量控制——即使在使用(自动)迁移时(我发现这对于 POCO-first 来说非常上瘾)。请务必查看项目站点上的良好文档,特别是http://www.subsonicproject.com/docs/Using_SimpleRepository。注意属性的使用。新属性易于创建并集成到自定义存储库服务类。

也许SubSonic 的 SimpleRepository最好的一点是:它很容易扩展。我们的团队对它进行了相当多的扩展(例如添加了急切加载支持),总的来说,我们都觉得破解它非常有趣。它有一个非常令人愉快的设计,它速度快、重量轻,而且不会引起人们的注意。

最重要的是,SimpleRepository + Migrations 鼓励合理的架构设计。如果你发现自己在与 SubSonic 战斗,你需要检查一下自己;更有可能的是,您正在将船驶入杂草中。

如果您需要更多的数据库版本控制火力,请将其与migrator.net结合使用,轻松取胜。

祝你好运,欢迎来到 SubSonic!

于 2011-03-31T01:57:43.520 回答