功能(实体)之间的共享上下文
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 视为工作单元 - 在需要时创建它,然后再处理它。重用实例时 - 它可能会占用您的内存,因为它会跟踪比您想要的更多的实体。如果其中一种方法使上下文变脏,您还可能无意中保存了不想保存的更改。
这一次我不在这里是因为我有问题,而是关于实体的问题
我有一个 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 视为工作单元 - 在需要时创建它,然后再处理它。重用实例时 - 它可能会占用您的内存,因为它会跟踪比您想要的更多的实体。如果其中一种方法使上下文变脏,您还可能无意中保存了不想保存的更改。