什么是最好的ORM与这些要求

时间:2010-08-08 12:45:28

标签: c# .net orm

我正在为即将开展的项目寻找一个好的ORM。

数据库将有大约1000到1200个表,它将在SQL Server和Oracle中,将根据客户的企业需求使用。 此外,该项目的一部分将与WCF服务一起使用。 我想要一个设计师或类似的东西。 LINQ的良好支持。 可接受的表现。

我试过DataObjects.Net,但它没有任何设计师。我们不能编码所有表,也不能使用代码生成器。而且我不确定DataObjects.Net是否支持切换数据库。 我也熟悉EF4,但它不能同时支持这两个数据库,手动切换数据库(修改edmx文件)对于维护工作来说是一件痛苦的事。

提前致谢。

修改:似乎OpenAccessLLBLGEN Pro有设计师,但我没有相关经验。

5 个答案:

答案 0 :(得分:7)

我仍然会投票给Entity Framework v4 - EF4。

毕竟:

  • 你可以有多个EDMX文件,没问题 - 一个用于SQL Server,一个用于Oracle

  • 您可以将它们放入自己的类库中,然后在运行时加载或者,或者根据需要加载或者加载其中一个或两者(例如,使用Managed Extensibility Framework或您自己的东西)< / p>

  • 您可以使用连接字符串轻松地将这些EDMX文件定位到数据库 - 真的不是很难

答案 1 :(得分:2)

根据这些信息,我建议您查看NHibernate(和/或fluent-nhibernate)。

您需要研究的项目是表现。这在很大程度上取决于您的应用程序的性质。 1,000到1,200个表听起来很大,所以我建议在最终确定决策之前先进行一些有意义的性能测试(除了所有其他测试)。

编辑:事实上,NHibernate更好的起点是nhibernate.info(谢谢,贾斯汀!)。

答案 2 :(得分:2)

OpenAccess也可以为您完成这项工作。您可以使用Entity Framework建议的多个.rlinq文件和每个数据库的汇编方法。我看到你的好处就是你将从Telerik那里得到的支持,因为在开发这样一个比例的解决方案时,你很有可能遇到一两块石头。

答案 3 :(得分:1)

我也建议NHibernate,但研究它的地方绝对是NHForge:

http://nhibernate.info/

以下是高级功能概述(包括LINQ):

http://nhibernate.info/doc/nhibernate-features.html

有一些设计师可供选择,包括LLBLGen Pro:

http://nhibernate.info/doc/commercial-product-ecosystem.html

NHibernate 3现在处于alpha状态,但我知道它已经在一些地方用于生产。这可能是进行新项目的最佳方式。

答案 4 :(得分:1)

我认为你需要单独选择你的ORM和设计师工具。例如,使用EF和LLBLGEN,或NHibernate和CodeSmith,或NHibernate和LLBLGEN等。