我在新的互联网网络应用程序中采用了EF(.NET 4.5以上版本)。我应该坚持实体框架吗?
这个应用程序确实涉及到数据库活动的一些操作,并涉及大约30个或更多的表。
我的观点是这不是一个简单的学校项目,EF通常适合大多数需求。
进一步我开发这个应用程序,我发现EF非常有限或禁止进行适当/好分贝的设计(尤其是在性能方面)
1)包括
我遇到包括特征查询部分。缺少许多数据是由于缺少包含设置。
我把这个东西放得越多,我越担心一个简单的数据检索就是在某些功能上获得比我需要的更多的东西。
2)验证
我采用流利验证了这方面的需要,因为我更喜欢访问者模式,在需要的地方过来的数据代码本身没有直接的代码更改。
但随着我继承我越来越挑战,我需要锻炼验证能够尊重面向对象的简单的东西。我管理它,虽然更复杂,我真的不喜欢它的实现某些东西。我相信这个子类验证问题也发生在DataAnnotation中。
3)交易
现在,我需要把适当的分贝transactaction控制,我发现这个缺乏EF,纠正我,如果我错了。
我曾经使用过Enterprise组件(.NET中的COM +,很久以前),并且我在EF中找不到合适的(或缺少它)事务实现。
我还在这方面的工作...
结论)
我体会到英孚已经帮助我在我的编码的唯一的事情,是数据/实体代码生成,这这是这是许多其他工具/框架的共同特征。
我在考虑放弃这个EF,切换回pre-EF时代方法,采用存储过程,仍然是代码生成的表类(但不是EF或DBML)。
我可以不使用SQL LINQ,因为在过去的性能问题上我有很多挑战。
我喜欢你的观点,我应该留下来坚持EF,无论出于何种原因,我简单的头脑可以感知到,除了这个ORM,它几乎不切实际地工作。
使用EF 6中的事务处理:https://msdn.microsoft.com/en-us/data/dn456843.aspx –