gpt4 book ai didi

entity-framework - 我应该坚持使用 Entity Framework 吗?

转载 作者:行者123 更新时间:2023-12-03 11:35:57 26 4
gpt4 key购买 nike

我在新的互联网Web应用程序中采用了EF(.NET 4.5的现成)。

这个应用程序确实涉及对数据库事件的相当多的操作,并且涉及大约30个或更多的表。

我的意思是,这不是一个简单的学校项目,EF通常适合大多数需求。

在进一步开发此应用程序时,我发现EF对于正确/良好的数据库设计非常有限或令人望而却步(尤其是在性能方面)

1)包括

我在查询部分遇到了“包含”功能。许多数据丢失是由于缺少包含设置。

我投入越多,就越担心简单的数据检索会获得比某些功能所需更多的东西。

2)验证

我为此需要采用Fluent Validation,因为我更喜欢访问者模式,在访问者模式中,与数据代码本身相比,无需直接更改代码。

但是当我继承子类时,我遇到了更多挑战,我需要进行锻炼验证以尊重OOP简单内容。我管理了它,尽管在实现过程中我确实不喜欢更多的复杂性和某些方面。我相信这个子类验证问题也发生在DataAnnotation中。

3)交易

现在,我需要合并适当的db事务控制,并且我发现EF中缺少此功能,如果我错了,请纠正我。

我曾经使用Enterprise组件(.NET中的COM +,很久很久以前)了,但是我在EF中找不到合适的(或缺少它)事务实现。

我还在为此做...

结论)

我意识到EF唯一帮助我进行编码的是数据/实体代码生成,这是许多其他工具/框架的共同特征。

我正在考虑放弃此EF,切换回EF前时代的方法,采用存储过程,仍由代码生成的表类(但不包括EF或DBML)。

我可以不用SQL LINQ,因为过去在性能问题上我对此有很多挑战。

我喜欢您的意见,除了这个ORM之外,无论出于什么简单的想法,我都应该坚持并坚持EF,这实际上几乎是行不通的。

最佳答案

您有看过Dapper吗? Dapper是一种超快速的微型ORM。它是由Stackoverflow员工(Sam Saffron)开发的,由于您提到的原因-性能和速度,他们在此站点上广泛使用它。链接在这里:

https://github.com/StackExchange/dapper-dot-net

我们放弃了EF,只使用了Dapper。结合其他社区开发的Dapper扩展,例如Dapper.SimpleCRUD和Dapper.SimpleCRUD.ModelGenerator,我们可以从数据库中快速生成POCO,同时保留Dapper与EF相比的所有优点。总体而言,您将编写更多代码,但Dapper的速度几乎等同于使用ADO.NET的SqlDataReader。这是指向SimpleCRUD的链接:

https://github.com/ericdc1/Dapper.SimpleCRUD/

关于entity-framework - 我应该坚持使用 Entity Framework 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com