我想知道...之间有什么区别。
using (var db = new PteDotNetContext())
{
var blog = new Blog() { BlogType = 1, Title = "Blog 1", Description = TestInfo.UniqueRecordIdentifier, DateAdded = DateTime.Now, User = TestInfo.UniqueRecordIdentifier };
db.Blogs.Add(blog);
db.SaveChanges();
}
PteDotNetContext context2 = new PteDotNetContext();
var blog2 = new Blog() { BlogType = 1, Title = "Blog 2", Description = TestInfo.UniqueRecordIdentifier, DateAdded = DateTime.Now, User = TestInfo.UniqueRecordIdentifier };
context2.Blogs.Add(blog2);
context2.SaveChanges();
是。我知道使用using语句基本上会调用对象上的析构函数。我只是想知道......
a)是否打开using语句然后关闭DbContext上的Sql连接? b)如果是这样,第二个语句会发生什么,因为我从未真正打开过它,它仍然有效。那么什么时候关闭声明?
答案 0 :(得分:3)
a)打开using语句然后关闭Sql连接 DbContext?
当使用块结束时,在using
语句中声明的变量是Disposed。在DbContext上,处理方法关闭连接,因此只要该代码块结束,连接就会关闭。
b)如果是这样,第二个陈述会发生什么,因为我永远不会 实际打开它,它仍然有效。所以我什么时候关闭 声明?
垃圾收集器在不再需要上下文对象时清除它,然后关闭连接。
您应该阅读using
statement和IDisposable
。