我最近正在收听一个播客,其中详细讨论了实体框架(EF)的缺点。
但是,他们的意见可能需要一点点(由我),从我可以收集的东西:
我的整体问题是:
但是这里有一些子问题可以帮助你解决这个问题:
编辑:对于那些可能很好奇的人,我主要从事中小型应用程序。这可以指导您的回应。
答案 0 :(得分:1)
实体框架适用于所有可以从ORM层中受益的应用程序。 Daniel Simmons的帖子详细介绍了这一点。 http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx
实体框架在许多方面与Linq for SQL类似,但与Linq for SQL的MS SQL Server无关。此外,EF支持业务/域对象与数据表之间更灵活的映射。 Linq for SQL支持更多的一对一映射,而EF支持将单个对象映射到多个表,或将单个表映射到多个对象的能力。你们两个都有很好的设计师支持。
在开源世界中,NHibernate可能是最先进的,在很多方面是更成熟的产品(它肯定支持更广泛的功能)。但是使用EF,您可以获得MS的全面支持以及与visual studio工具集和.net框架堆栈的紧密集成。在撰写本文时,EF也是比NH更好的Linq profider。
对于快速而肮脏的应用程序,如果您可以使用MS SQL Server和映射限制,我会倾向于Linq for SQL。
对于更复杂的应用程序,我会使用EF或NHibernate。
您可能对我在EF上发布的信任投票感兴趣 http://blog.keithpatton.com/2008/06/24/A+Vote+Of+Confidence+For+The+Entity+Framework.aspx