.NET 2.0的任何类似于Entity Framework的ORM? (DB-第一!)

时间:2011-07-23 17:10:24

标签: entity-framework orm .net-2.0

由于我当前项目的具体情况,我必须继续使用.NET 2.0。 .NET 2.0中是否有类似于Entity Framework的ORM?

  1. 我非常喜欢非LINQ接口。像users.Where(u => u.Age > 100).Count()这样的语法很好。
  2. 我需要使用DB-first方法:我已经拥有一个包含大约30个表的数据库,并且只考虑简化工作的方法。所以,如果可以从现有数据库生成所需的代码,我真的很感激。
  3. 如果它不会生成所有必需的代码,但提供了手动描述数据库结构的方法(例如,使用属性),也可以。基本上,我只是希望能够构建更多或更少的复杂查询,而不会弄乱真正的SQL,SqlParameterDataSet s / DataTable以及所有这些int.Parse(row[12].ToString())(这是我试图摆脱的遗留代码)
  4. 此外,如果我能够通过调用现有存储过程来“覆盖”某些特定的“查询”,那将会很棒。
  5. 最重要的是第2页 - 数据库优先。有什么这种吗?或者我对自己的想法完全错了?会欣赏任何想法。

2 个答案:

答案 0 :(得分:5)

您最好的选择是结帐NHibernate。许多(大多数?)人们认为它比EF 4.1更强大,功能更强大,而且stackoverflow和网络的其余部分都有大量资源来指导您的开发过程。

请务必查看Fluent NHibernate,以便轻松地将数据库映射到C#对象。编辑XML文件的替代方案复杂,笨重且耗时。

请注意,您可能需要使用与.NET 2.0兼容的较旧但功能完备的NHibernate版本(我认为,但不是正面的,更新版本需要.NET 3.5)。

答案 1 :(得分:2)

有很多可用的ORM,但其中一些是商业的(LLBLGen Pro)。对你来说很好的选择可能是NHibernate 2.1(我认为NHibernate 3.x需要.NET 3.5)。

您还应该转向更新的.NET版本。应该避免在.NET 2.0上开始新的开发,并且将新技术引入现有的旧代码库,IMO会破坏应用程序的体系结构和可维护性。

编辑:

  

所以,如果可以从现有数据库生成所需的代码,我真的很感激。

     

最重要的是第2页 - 数据库优先。

ORM和代码生成是两个不同的领域。 DB首先并不意味着代码生成 - 它意味着映射到现有数据库而无需更改数据库。为您生成代码并不是ORM的重点。 ORM的要点是允许您将DB映射到类和抽象查询。如果最重要的一点是代码生成,那么你应该寻找其他东西然后ORM。 NHibernate没有包含这样的代码生成,但是有一些额外的项目添加了类似的功能。