Entity framework 4 EF 4是否先编码';的ContextBuilder是否处理其SqlConnection?
首先查看ADO.Net EF 4 CTP 3中的代码,并想知道中的Entity framework 4 EF 4是否先编码';的ContextBuilder是否处理其SqlConnection?,entity-framework-4,code-first,Entity Framework 4,Code First,首先查看ADO.Net EF 4 CTP 3中的代码,并想知道中的SqlConnection是如何处理的。这是ContextBuilder的责任吗?示例中是否缺少该选项 var connection = new SqlConnection(DB_CONN); var builder = new ContextBuilder<BloggingModel>(); var connection = new SqlConnection(DB_CONN); using (va
SqlConnection
是如何处理的。这是ContextBuilder的责任吗?示例中是否缺少该选项
var connection = new SqlConnection(DB_CONN);
var builder = new ContextBuilder<BloggingModel>();
var connection = new SqlConnection(DB_CONN);
using (var ctx = builder.Create(connection))
{
//...
}
var连接=新的SqlConnection(DB_CONN);
var builder=new ContextBuilder();
var连接=新的SqlConnection(DB_CONN);
使用(var ctx=builder.Create(connection))
{
//...
}
。因此,只要连接是关闭的——我想你会发现它是关闭的,但不要相信我的话——示例代码就可以工作
但是既然你问了,你可能无论如何都应该把它处理掉。它不会造成任何伤害,并且会阻止其他人提出同样的问题。我刚刚意识到我可以向ObjectContext添加一个事件处理程序。处理并解决这个问题 至少在CTP3中,当处理ObjectContext时,不处理连接
因为我已经在对ObjectContext进行子类化,所以我在子类中实现了IDisposable,并从中调用Connection.Dispose()。这段代码与链接上的代码不完全相同,但我认为这是一个剪切粘贴错误。@Craig:为了清楚起见,只需缩写一下…:-)我知道处理连接也会关闭它,但示例代码处理的是ctx,而不是连接。(对我来说)尚不清楚ContextBuilder的合同是否确保它将处理(并因此关闭)给定的连接。让我重新措辞:因为ContextBuilder关闭连接,所以不需要处理连接。ContextBuilder在我的测试中没有关闭连接(请参阅我的单独答案)。