针对SQL Server的ORM建议

时间:2009-06-08 14:47:34

标签: sql-server orm

我将在我的项目中使用SQL Server,因为我想用它选择一个ORM。我对NHibernate as an ORM有一些经验。事实上,鉴于该项目的性质(MySQL后端)NHibernate确实是唯一的选择。

我还使用了strongly typed dataset as my ORM,并且将Microsoft Access作为后端。我也有一些LINQ2SQL的经验。

现在,我知道,所有路径都通向罗马;很多ORM都能很好地处理sql server。但是我想要最好的ORM

  1. 开发时间。也就是说,拖放设计器将我的实体类映射到数据库模式。因此,如果我更改模式,我的实体类会自动更新。
  2. 多个数据库支持。 ORM必须能够以最佳方式处理多个数据库查询。此外,还必须轻松支持多个连接字符串。
  3. 扩展即可。如果我想添加一个查询,而不想让设计师文件搞乱;他们是颈部疼痛的褶皱。
  4. 那可能就是这样。有什么想法吗?

6 个答案:

答案 0 :(得分:5)

根据他的要求,LLBLGen是最佳选择。请注意,LLBL和NH之间存在很大差异。 LLBL是ORM / Generator,您的实体将预先生成大量代码,并从数据库开始。因此,如果拖放是你想要的,那么一定要使用LLBL。

答案 1 :(得分:3)

LLBLGen可能是您的选择。

它拥有最好的设计师应用程序之一,并且功能非常丰富。

答案 2 :(得分:0)

ADO .NET Entity Framework

似乎在某种程度上满足了每个要求,尽管不是很完美

答案 3 :(得分:0)

  • 类型化数据集:0/3
  • Linq To Sql:1/3它可以执行第3项。它可以执行第2项:不同查询的多个连接字符串没有问题 - 但如果您想在单个查询中使用多个数据库,则必须执行使用视图或存储过程来实现目标。第1项是破产 - 如果您更改架构,则必须在设计器中自行刷新实体。

答案 4 :(得分:0)

强类型数据集不应被视为OR / M工具。 (强类型)数据集只是数据库中数据的内存表示形式(1:1表示)。

当您使用OR / M时,您'转换'数据库中存在的数据,内存中的业务对象(不必是数据库模型的1:1表示,可以包含其他逻辑)等等......)。

也许您可以查看MS Entity Framework,但据我所知,NHibernate在功能,性能,抽象方面仍然是更好的解决方案,并且您可以更好地控制它(但是,这可能有点成本(在开发时间)。(没有拖放设计,但你可以从你的映射生成你的数据模型。)

(迟到的反应 - 网络失败......)

答案 5 :(得分:0)

我想建议DbBroker一个非常快速且轻量级的ORM库。

它针对SQL Server进行了优化。

DbBroker site

相关问题