在Azure辅助角色中,建议使用以下哪种模式来处置objectcontext。另外,使用这些模式中的任何一种都会以不同的方式影响连接池吗?
public override void Run()
{
DatabaseObjectContext ctx = new DatabaseObjectContext()
while (condition)
{
ctx.Dosomething();
}
ctx.Dispose();
}
vs
public override void Run()
{
while (condition)
{
DatabaseObjectContext ctx = new DatabaseObjectContext()
ctx.Dosomething();
ctx.Dispose();
}
}
答案 0 :(得分:2)
ObjectContext不是一个持久的对象。将其视为工作单元模式的实现。所以第二种选择可能更好。
答案 1 :(得分:1)
如果我必须在两者之间做出选择(即我不能或者太难实现,因为Barlomieij说UoW模式),我选择第一个,最后删除ctx.Dispose()并替换将所有内容包装在using语句中。