【发布时间】:2015-02-27 17:19:02
【问题描述】:
好吧,我真的不知道何时或如何处理数据上下文。例如,我有这样的代码:
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 和可用资源(主要是数据库连接)处理异常的最佳方法是什么?
非常感谢。
【问题讨论】:
-
只需将每个资源(上下文、连接等)包装在
using中。不要打电话给.Dispose。不要添加try/catch。 -
如果您使用的是
using,则无需担心。它将被 100% 处理 -
您可能会觉得这很有帮助 - stackoverflow.com/questions/8309877/…
-
好的,那么使用就足够了,但我有一个dobut。如果我需要捕获和异常,例如并发异常,是否与 using 在 try 中的 try 或在 using 中的 try 相同?
标签: entity-framework exception dbcontext