可能重复:
What ORM frameworks for .NET Do You Like Best?
Best way to access a SQL Server database using C# .Net
您好,
有人可以为SQL Server 2008 / .NET推荐一个好的O / R映射器吗?
我正在寻找它也支持存储过程而不仅仅是表格。
谢谢!
答案 0 :(得分:3)
你会听到有关各自利弊的争论。就个人而言,我现在建议NHibernate。它是两者中比较成熟的,并且有一个非常活跃的社区。它确实有一个陡峭的学习曲线。
我补充一点,支持EF over NH的主要功能是EF具有完整的LINQ支持。 NH2作为目前可用的单独补充剂具有部分支持。但是,NH3 Alpha现已发布,它有一个更好的LINQ提供商。
但是,这在很大程度上取决于您的要求。
答案 1 :(得分:2)
NHibernate是要走的路。
有关详细信息,请参阅http://nhforge.org和http://sf.net/projects/nhibernate。
Entity Framework和NHibernate之间的主要区别在于Entity Framework仅适用于Microsoft SQL Server(Oracle受支持,但支持并不理想)。 NHibernate支持许多许多数据库。
但它们之间存在更多差异。对comparison nhibernate "entity framework"的查询提供了许多信息来源。
答案 2 :(得分:2)
Linq to SQL可能是一个不错的选择。实体框架是另一个。两者都符合您的要求。
从技术上讲,使用SQL Server和.NET的Linq to SQL的O / R工具将是Visual Studio或SQLMetal中的O / R设计器。两者都使您能够建模数据以及存储过程/函数。
如果你有Visual Studio,你只需添加一个新对象并选择ADO.NET实体类或Linq to SQL类,具体取决于你使用的是什么。
如果没有Visual Studio,您可以使用SQLMetal命令行工具生成L2S类:
SQLMetal:http://msdn.microsoft.com/en-us/library/bb386987.aspx
答案 3 :(得分:-2)
内置linq