好吧,我真的不知道何时或如何处理数据上下文。例如,我有这段代码:
try
{
using(MyEntities myDbContext = new MyEntities())
{
//My code that get entities from data base and work with them
}
}
catch
{
throw;
}
在这种情况下,如果我没有错,如果一切顺利,则处理数据上下文。但是,如果在我的代码中出现问题并抛出异常,我的数据上下文是否被处理?
出于这个原因,我正在考虑另一种选择:
using(MyEntities myDbContext = new MyEntities())
{
try
{
//My code
}
catch
{
myDbContext.Dispose;
throw;
}
}
在这种情况下,我将dbcontext放入catch中,所以我认为这是处理掉的。但我不知道这是一个好的解决方案,还是有其他选择。
使用dbContext和free资源(主要是数据库连接)处理异常的最佳方法是什么?
非常感谢。
答案 0 :(得分:2)
您需要做的就是确保Dispose()
using(MyEntities myDbContext = new MyEntities())
{
//My code that get entities from data base and work with them
}
相当于但不那么优雅:
MyEntities myDbContext = new MyEntities();
try{
... (your code)
}
finally{
myDbContext.Dispose();
}
抛出,捕获或未捕获异常并不重要......