【问题标题】:shared context between functions (entity)函数(实体)之间的共享上下文
【发布时间】:2015-10-07 01:11:13
【问题描述】:

有一次我不在这里,因为我有问题,而是关于实体的问题

我有一个名为 db 的类,它可以进行所有实体调用。 因为我很懒,所以所有功能都是静态的。 一个函数的进程可能会导致该类中的其他函数调用... 每次创建一个新对象 MyDBEntities,可能没有通过 saveChanges() 获得的修改

在所有函数之间“共享”上下文是个好主意吗? 让我解释一下:我读过this question,我不想做这样的事情,但更像是:

private static MyDBEntities context(MyDBEntities c)
{
    if (c == null)
        c = new MyDBEntities();
    return c;
}

每个函数都像

public static randomfunction(object parameter1,MyDBEntities ctx = null )
{
    ctx=context(ctx);
    /*things*/
    randomfunction2(blablah,ctx);
    /*awesome stuff*/
}

这是个好主意吗?

【问题讨论】:

    标签: c# asp.net .net entity-framework entity-framework-5


    【解决方案1】:

    没有。不要偷懒。将 DbContext 视为工作单元 - 在需要时创建它并在之后处理它。重用实例时 - 它可能会占用您的内存,因为它会跟踪比您想要的更多的实体。如果其中一种方法使上下文变脏,您还可以无意中保存不想保存的更改。

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 2017-07-08
      • 2022-11-22
      • 2013-07-10
      • 2016-03-21
      • 2017-09-26
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多