还有人后悔使用Entity Framework吗?

时间:2009-05-21 22:18:30

标签: .net linq-to-sql entity-framework

我有一个实现Linq To SQL的项目,我很高兴。很长一段时间,最大的问题只是设计师有错误。

不幸的是,我的项目现在需要多个表继承,而Linq to SQL不支持它。当我得知它确实支持多重继承时,我决定切换到实体框架,并且似乎是微软的方向。但现在我开始对这个决定感到后悔。

例如,调用Load()? WTF?如果我不想要这些数据,我不会要求它!找出所有Entity Framework的肛门怪癖正在成为我身边的一大棘手。

无论如何......隧道尽头有灯吗?当我完成所有工作时,使用EF是否值得,或者我做出了一个糟糕的决定?

最后,我想问一下:微软在整个ORM中的位置是什么? Rails的ActiveRecord多年来一直工作得很漂亮。

6 个答案:

答案 0 :(得分:11)

你并不孤单。有a series of posts on the ADO.NET blog讨论了.NET 4.0中对实体框架的增强。它们似乎非常重要,但无论它们是否足以满足您的需求,只有您可以判断。

答案 1 :(得分:7)

嗯,VS2010 beta is available;你可以启动一个虚拟机,看看4.0中的EF是否更适合你?

就个人而言,我现在一直坚持使用LINQ-to-SQL,但可能是因为我还不需要任何其他功能。

答案 2 :(得分:3)

我绝对同意。延迟加载是为我杀死实体框架的原因。它只是打开一堆蠕虫,将实体附加和分离到上下文实例。我真的不想担心这些事情。但是之前谁还没有使用过来自微软的半成品:)我很高兴他们将在新版本中修补。在此之前,L2S似乎是你最好的选择。

答案 3 :(得分:3)

我实际上期待在其v4版本中使用Entity Framework,希望很快就能实现。当然,在我们的情况下,它伴随着摆脱一个不再受支持的神可怕的ORM,这比瘟疫更糟糕 - 所以EF v4看起来像一个上帝发送给我! : - )

马克

答案 4 :(得分:3)

我对EF v1.0感到非常失望。它承诺了很多,但实际上它极其严格,表现得非常糟糕,并且不支持现有的应用程序和基础架构。

那就是说,EF v2.0看起来很有前途。微软已经向大众开放了设计流程,允许我们这些希望看到EF成功的人,看看是否适合各种各样的使用场景,它应该提供我们的建议,建议和意见。

如果您有兴趣查看此项工作的结果,或想要提供自己的意见,请查看EF设计博客:http://blogs.msdn.com/efdesign/

最后,如果微软仍无法生产适合各种场景的灵活ORM,那么总会有NHibernate。我一直在使用LINQ to SQL,Entity Framework和NHibernate,而三者中,NHibernate是最友好,最灵活,最成熟的框架。它对视觉设计师的影响不大,但如果你对EF的局限性,怪癖,奇怪的行为和糟糕的表现感到沮丧,NHibernate是一个很好的选择。

答案 5 :(得分:2)

跟进:

我已经放弃了实体框架。代码重写一直在变形,我对结果并不满意......由于缺乏延迟加载支持而变得很糟糕。

我决定回到Linq to SQL并尝试单表继承。我们没有很多子类型,所以目前它应该是一个丑陋但可接受的解决方案。当新版本的VS和实体框架发布时,我会考虑在那时再次切换,因为新版本的更改看起来很有希望。