[英]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.