函数(实体)之间的共享上下文

本文关键字:共享 上下文 之间 实体 函数 | 更新日期: 2023-09-27 18:03:17

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

我有一个名为db的类,它使所有实体调用。因为我很懒,所有的函数都是静态的。一个函数的进程可能会导致这个类中的其他函数调用…每次创建一个新对象MyDBEntities,可能不需要通过saveChanges()

进行修改。

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

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*/
}

这可能是个好主意吗?

函数(实体)之间的共享上下文

No。不要懒惰。把DbContext当作一个工作单元——在需要的时候创建它,然后处理它。当重用一个实例时,它可能会占用你的内存,因为它会跟踪比你想要的更多的实体。如果其中一个方法使上下文变脏,您还可以无意中保存您不想保存的更改。