我必须在实体框架 6 中为 DbContext 使用“使用”块吗
Posted
技术标签:
【中文标题】我必须在实体框架 6 中为 DbContext 使用“使用”块吗【英文标题】:Must I use "Using" block in Entity Framework 6 for DbContext 【发布时间】:2018-12-18 02:20:59 【问题描述】:这个问题不是关于 c# 的一般“使用”,而不是关于何时/为什么使用它等。
问题是,DBContext 对象是否自己处理连接,因此我不需要使用using
来处理它,没有问题所以不要将其标记为重复
using (DBContext db = new DBContext())
var Order = db.Order.First(r => r.OrderID == 6);
Order.Type = 6;
db.SaveChanges();
或者不使用
DBContext db = new DBContext();
var Order = db.Order.First(r => r.OrderID == 6);
Order.Type = 6;
db.SaveChanges();
因为我在this source 中看到using
不是必需的,最好不要使用它。
Entity Framework 会为我处理连接吗?
【问题讨论】:
使用的影响之一是当您处理急切加载和延迟加载时。查看此答案的最后一部分以获取更多详细信息***.com/a/34628138/2946329 【参考方案1】:上下文的生命周期从创建实例时开始,到实例被释放或垃圾回收时结束。如果您希望将上下文控制的所有资源都放置在块的末尾,请使用 using。
使用 using 时,编译器会自动创建一个 try/finally 块,并在 finally 块中调用 dispose。
【讨论】:
以上是关于我必须在实体框架 6 中为 DbContext 使用“使用”块吗的主要内容,如果未能解决你的问题,请参考以下文章