因此,ADO.NET 实体框架受到了一些负面报道(以博客条目和请愿书的形式),但我不想急于做出判断。我的实验时间有限,但我想知道是否有人使用它并获得更多经验反馈?
最后,关于使用已经存在很长时间并且可能比 ADO.NET Entity Framework 更成熟的 NHibernate 有什么想法。
因此,ADO.NET 实体框架受到了一些负面报道(以博客条目和请愿书的形式),但我不想急于做出判断。我的实验时间有限,但我想知道是否有人使用它并获得更多经验反馈?
最后,关于使用已经存在很长时间并且可能比 ADO.NET Entity Framework 更成熟的 NHibernate 有什么想法。
NHibernate 可能更成熟。这并不一定意味着它是一个“更好”的解决方案。在我的工作中使用它一段时间后,我个人更喜欢使用 NHibernate 之外的任何东西(即使是直接 SQL,如果迁移是远程可行的)。NHibernate 抛出的没有任何意义的错误消息的数量(或确实意味着某事但不应该发生)绝对是惊人的,它的一些默认行为也是如此(例如为 Find 中返回的每个对象刷新一次会话)。
就个人而言,当我有选择时,我使用 LINQ to SQL 来完成所有数据库工作。
如果零配置是 SubSonic 的主要优势,您可以查看Fluent nHibernate或 Entity Framework Code-First
来自 Răzvan Panda 的更新:由于 NHibernate 本身包含代码映射,Fluent NHibernate 大部分已经过时,请参阅:notherdev.blogspot.ie/2012/02/
从原来的帖子到现在已经2年了。据我了解,ADO.NET Entity Framework 在 .net 4 中已经成熟。有人对此主题有任何新的反馈吗?
这是自 2008 年首次发布以来添加到 EF 的改进的链接 http://blogs.msdn.com/b/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net- 4-and-visual-studio-2010.aspx
更新:我在堆栈溢出中发现了这个线程,它很好地讨论了更新的 EF:
微软几乎承认 ADO.Net 实体框架不是 ORM(我目前找不到参考)。因此,如果您将实体框架视为一个查询引擎,那么显然它确实擅长它的功能。但是,对于完整的 ORM 解决方案,您可能希望在别处寻找。
以下博客文章似乎证实了这种差异:
http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx
我使用过 SubSonic、LinqToSql、LinqToEntities。现在我正在尝试 NHibernate。现在 - 我喜欢 NHibernate(可能是因为我遇到的问题还不够多)。最糟糕的是——LinqToEntities(当然,这只是我的看法)。
我确实对 SubSonic 有疑问。SubSonic 在名称相同但架构不同的表上窒息而死。我不想讨论建立数据库的最佳实践,因为我没有打电话这样做。(当谈到提出意见并保住工作时,我宁愿保住工作。: ) )
我开始喜欢实体。弄清楚它的所有错误消息的含义需要一段时间,但是一旦你习惯了它,它确实做得很好。它现在最大的缺点是没有真正支持断开连接。