c# - 在不使用语句的情况下使用 Entity Framework 的缺点?

标签 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();
    }

    .....

我应该像这样更改方法吗?:

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

        return View();
    }
    .....

EF中不使用using-statement有什么问题?或者最好的方法是什么?此外,如果我们使用 using-statement 代码块会增长。

谢谢...

最佳答案

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

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

关于c# - 在不使用语句的情况下使用 Entity Framework 的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643491/

相关文章:

c# - 如何在 Azure Functions Bot 中注册帮助/重置/设置可评分(非主动)?

c# - ASP.NET MVC 5 中的 Azure AD 身份验证

asp.net-mvc - 异步 HttpModule MVC

javascript - 如何在 ASP MVC 中显示 sweetAlert 验证删除对话框

javascript - 重定向到 URI 的散列版本的最佳方法?

c# - Entity Framework 代码首先使用 Where 子句更新

entity-framework - EF6 OutOfMemoryException 使用 varbinary(max) 属性评估实体

c# - 将站点上传到 IIS,找不到 Controller 资源(错误 500)。使用 iisexpress 在本地工作

entity-framework - 如何使用 Entity Framework Core 获取 SQL 脚本(代码优先)

c# - 基于 SSL + X.509 的 Web 服务返回 SSL/TLS 错误