我们在2个项目中使用了Entity Framework,这些项目都有100个表。
我们的经验主要是积极的。与使用企业库和存储过程相比,我们已经获得了很大的生产力提升。
但是,当我建议在stackoverflow上使用EF时,我经常会收到负面评论。
在消极方面,我们发现某些功能存在陡峭的学习曲线。
最后,问题是:人们对EF有什么问题,为什么他们更喜欢其他ORMS?
答案 0 :(得分:4)
和你一样,我对EF的体验大多是积极的。我遇到的最大问题是非常复杂的查询可能需要很长时间才能编译。视觉设计师也比框架本身更不稳定,功能更少。我希望框架将GeneratedCode属性放在它生成的代码上。
答案 1 :(得分:4)
我最近使用EF并且有相对较好的使用体验。我也看到围绕EF的很多负面反馈,考虑到它所提供的一切,我认为这是不幸的。
让我感到惊讶的一个问题是两种获取数据策略之间的性能差异。最初,我认为执行热切加载会更有效率,因为它会通过单个查询提取数据。在这种情况下,数据是一个订单,我正在对5-8个相关表进行急切加载。在开发过程中,我们发现此查询非常慢。使用SQL事件探查器,我们查看了流量并分析了生成的查询。生成的SQL语句非常庞大,SQL Server似乎并不喜欢它。
为了解决这个问题,我恢复了延迟加载/按需模式,这导致了对服务器的更多查询,但性能得到了显着提升。这不是我最初的预期。我的外卖,恕我直言,适用于所有数据访问实现,我真的需要对数据访问进行性能测试。无论我是使用ORM还是SQL过程或参数化SQL等,都是如此。
答案 2 :(得分:1)
我也使用了Entity Framework,并发现了以下缺点:
答案 3 :(得分:0)
在实体框架中不支持触发器而不是触发器。