对象到表的亚音速自定义映射

时间:2009-12-13 06:02:43

标签: .net orm poco subsonic3

我正在使用Compact Framework 3.5并暂时确定了用于进行数据访问的Customonic 3.0的自定义构建。问题是我习惯于先开发模型,但我也对保持对数据库模式的控制感兴趣。因此,ActiveRecord或Repository似乎都不能满足我的需求,我想使用我现有的POCO模型并将其映射到我现有的表。我习惯通过NHibernate和Entity Framework来做这件事。

经过一番调查后,似乎我可以创建自定义QueryMapping来为我提供我想要的自定义映射。然而,在我开始这条道路之前,我想看到一些这样的例子。我似乎无法在网上找到任何内容,并想知道是否有人可以提供有关Subsonic,模型优先和自定义Table-per-Type和Table-per -ierarchy映射的经验的输入。

1 个答案:

答案 0 :(得分:1)

从SubSonic 3.0.x开始:

如果你想使用POCO,你非常想要Repository - 特别是SimpleRepository。 SubSonic仅支持每个表类型的模型。 SubSonic不支持继承。如果你想要它,你将不得不编码;但是,如果你有动力去接受它,那就无法实现。

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

关于SubSonic的SimpleRepository可能是最好的事情:它很容易扩展。我们的团队已经扩展了很多(例如添加了急切加载支持),总的来说,我们都发现它非常有趣。它设计非常舒适,速度快,重量轻,不会引起人们的注意。

最重要的是,SimpleRepository + Migrations鼓励理智的架构设计。如果你发现自己在与SubSonic作战,你需要检查自己;更有可能的是,你正在驾驶你的船进入杂草。

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

祝你好运,欢迎来到SubSonic!