0

在 Azure 辅助角色中,建议使用以下哪种模式来处置对象上下文。此外,使用这些模式中的任何一种都会以不同的方式影响连接池吗?

public override void Run()
{      
    DatabaseObjectContext ctx = new DatabaseObjectContext()                 
    while (condition)
    {
      ctx.Dosomething();   
    }
    ctx.Dispose();
} 

对比

 public override void Run()
 {                        
     while (condition)
     {
      DatabaseObjectContext ctx = new DatabaseObjectContext()  
      ctx.Dosomething();   
          ctx.Dispose();
     }
  } 
4

2 回答 2

2

ObjectContext 并非设计为持久对象。将其视为工作单元模式的实现。所以第二种选择可能更好。

于 2013-09-18T10:01:56.620 回答
1

如果我必须在两者之间进行选择(即我不能或太复杂而无法实现,因为 Barlomieij 说的是 UoW 模式),我会选择第一个,最后删除 ctx.Dispose() 并通过将所有内容包装在使用语句。

于 2013-09-18T11:56:46.097 回答