功能(实体)之间的共享上下文

shared context between functions (entity)

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

我有一个 class 命名的数据库,它进行所有实体调用。 因为我很懒,所有功能都是静态的。 一个函数的过程可能会导致此 class... 中的其他函数调用 每次创建一个新对象 MyDBEntities,可能没有通过 saveChanges()

进行的修改

"share" 所有函数之间的上下文是个好主意吗? 让我解释一下:我读过 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*/
}

这会是个好主意吗?

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