由于我当前项目的具体情况,我必须继续使用.NET 2.0。 .NET 2.0中是否有类似于Entity Framework的ORM?
users.Where(u => u.Age > 100).Count()
这样的语法很好。SqlParameter
和DataSet
s / DataTable
以及所有这些int.Parse(row[12].ToString())
(这是我试图摆脱的遗留代码)最重要的是第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没有包含这样的代码生成,但是有一些额外的项目添加了类似的功能。