在Entity Framework 6中,我必须使用“Using”块来管理DbContext吗?

5

这个问题与 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();

因为我在这个来源中看到,使用using语句并不是必要的,最好不要使用它。
Entity Framework会自动为我处理连接的释放吗?

使用时的一个影响是在处理急切加载和延迟加载时。有关更多详细信息,请查看此答案的最后一部分 https://dev59.com/TlsW5IYBdhLWcg3wwZYP#34628138 - Salah Akbari
1个回答

2

上下文的生命周期始于实例创建时,终止于实例被处理或垃圾回收。如果您希望上下文控制的所有资源在块结束时被处理,请使用 using。

使用 using 时,编译器会自动创建 try/finally 块,并在 finally 块中调用 dispose。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接