使用实体框架而不使用语句的缺点?

Ali*_*hşi 3 c# asp.net-mvc entity-framework using

有很多像这样的代码块:

public class SomeController : Controller
{
    DbEntities entity = new DbEntities();

    public ActionResult Add()
    {
        entity.someOperations...
        return View();
    }

    public ActionResult Edit()
    {
        entity.someOperations...
        return View();
    }

    public ActionResult Detail()
    {
        entity.someOperations...
        return View();
    }

    public ActionResult Detail()
    {
        entity.someOperations...
        return View();
    }

    .....
Run Code Online (Sandbox Code Playgroud)

我应该改变这样的方法吗?:

public class SomeController : Controller
{
    public ActionResult Add()
    {
        using(DbEntities entity = new DbEntities())
        {
            entity.someOperations...
        }

        return View();
    }
    .....
Run Code Online (Sandbox Code Playgroud)

不使用using-statementEF 有什么问题?或者最好的方法是什么?另外,如果我们使用using-statement代码块增长.

谢谢...

phn*_*kha 5

如果使用using语句,上面的示例中没有大问题,但是当dbContext是局部变量时,很难为这样的代码编写单元测试.

如果你不遵循任何设计模式,如Repository,Unit of Work,你不想编写单元测试,那么在using case中包装所有逻辑是这种情况下的最佳选择.