繁体   English   中英

DbContext生命周期在数据库优先和代码优先的应用程序开发中的重要性

[英]Importance of the lifetime of the DbContext in database-first & code-first application development

我正在使用Entity Framework 6.1学习ASP.NET MVC。

当我了解DbContext类时,我发现它不仅管理数据库连接,而且还跟踪数据中的更改。 我想了解如何管理DbContext的生存期。 但是架构师说我不必担心DbContext生命周期,因为我们的产品采用“数据库优先”(使用EDMX文件)方法,并且所有逻辑实际上都将驻留在存储过程中。

您能否DbContext我遵循的DbContext (或ObjectContext )与设计方法(代码优先vs数据库优先)有什么关系?

当我采用“数据库优先”的方法时,是否不必担心DbContext生命周期(例如,保持其活动状态并在整个业务流程中通用,还是为同一业务流程的每一步创建一个新DbContext )?

DbContext是连接数据库的行,因此,如果您正在使用EF(无论是否应该使用EF),则需要管理DbContext的生命周期。 如果您过度使用DbContext则内存占用可能会不必要地变大。 请记住, DbContext并不完全等同于连接,因此处理它们并不会带来太大的代价。

如果您不使用更改跟踪,请考虑使用方法AsNoTracking() ,它将大大提高大型查询的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM