有一次我不在这里,因为我有问题,但有关实体的问题
我有一个名为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*/
}
这可能是个好主意吗?
答案 0 :(得分:0)
没有。不要偷懒。将DbContext视为工作单元 - 在需要时创建它并在之后处理它。重用一个实例时 - 它可能会占用你的记忆,因为它会追踪比你想要的更多的实体。如果其中一个方法使上下文变脏,您还可能无意中保存您不想保存的更改。