2009-07-20 36 views
5

我们在两个项目上都使用了实体框架,这两个项目都有几百个表。Entity Framework有什么问题?

我们的实验主要是积极的。与使用企业库和存储过程相比,我们已经获得了巨大的生产力提升。

但是,当我建议在计算器上使用EF时,我经常会收到负面评论。

从负面来看,我们发现某些功能存在陡峭的学习曲线。

最后,问题:人们对EF有什么问题,为什么他们更喜欢其他ORMS?

+0

好问题;如果人们注意到他们在答案中使用的EF版本(v1或v4 beta),这将会很有帮助。谢谢! – TrueWill 2010-02-03 21:39:27

回答

4

像你一样,我对EF的使用经验主要是积极的。我遇到的最大问题是非常复杂的查询可能需要很长时间才能编译。视觉设计师也不太稳定,并且比框架本身具有更少的特征。我希望框架将GeneratedCode属性放在它生成的代码上。

+0

您可以预编译复杂的查询。看看CompiledQuery。 – 2010-02-03 21:47:09

+0

是的,我知道。如果您需要重复使用查询,那么确实值得,但如果仅使用一次查询,则速度不会更快。 – 2010-02-03 22:46:28

4

我最近使用过EF,并有过相对较好的使用经验。我也看到很多EF的负面反馈,我认为它考虑到它所提供的一切都是不幸的。

一个令我感到意外的问题是两种获取数据策略之间的性能差异。最初,我认为进行急切加载会更有效率,因为它会通过单个查询来提取数据。在这种情况下,数据是一个订单,我正在对5-8个相关的表进行热切的加载。在开发过程中,我们发现这个查询不合理地慢。使用SQL分析器,我们观察了流量并分析了结果查询。生成的SQL语句非常庞大,SQL Server似乎并不喜欢这么多。

要解决此问题,我恢复为延迟加载/按需模式,这会导致向服务器发送更多查询,但性能显着提升。这不是我最初的预期。我的外卖,恕我直言,所有数据访问实现都适用,我真的需要对数据访问进行性能测试。不管我是否使用ORM或SQL特效或参数化的SQL这是真实的,等

1

我使用实体框架太,并发现以下缺点:

  1. 我不能与Oracle是工作对我来说确实很必要。
  2. 实体框架的模型设计器。在从数据库存储部分更新模型期间也重新生成。这是非常不舒服的。
0

不支持在实体框架中使用触发器。

相关问题