我想知道......之间的区别使用DbContext和不使用语句[代码优先]有什么区别?
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)使用语句是否打开并关闭DbContext上的Sql连接? b)如果是这样,第二个陈述会发生什么,因为我从来没有真正打开它,它仍然有效。那么我什么时候结束这个声明呢?
您需要研究'IDisposable'。 – 2012-04-13 16:13:35
并搜索“C#using”。但是,这可能是一个稍微涉及的问题。例如,*在LINQ2SQL *中,Dispose将关闭连接*当且仅当* * * *之前打开*。我不确定EF。 (所以请注意*使用'*的一般回复!) – 2012-04-13 16:21:37