我一直在阅读一些令人困惑和相互矛盾的建议。
给出以下示例方法:
using(var db = new MainContext())
{
var q = db.tblArcadeGames;
foreach (var game in q)
{
UpdateGameStats(game);
}
}
public void UpdateGameStats(ArcadeGame game)
{
using(var db = new MainContext())
{
// Do some queries and updates etc
}
}
最初创建的数据上下文是否应作为参数传递给UpdateGameStats
,如下所示:
using(var db = new MainContext())
{
var q = db.tblArcadeGames;
foreach (var game in q)
{
UpdateGameStats(game, db);
}
}
public void UpdateGameStats(ArcadeGame game, MainContext db)
{
// Do some queries and updates etc
}
重用数据上下文总是最佳做法吗?是否应该在每个重复使用的页面上创建一个?或者每次都应该创建一个新的?
在我看来,重用数据上下文会造成在某些情况下难以维护和模块化代码的情况。
答案 0 :(得分:3)
在这个具体的例子中,我重用了数据上下文:
关于何时处理你的情境,没有一个严格的,快速的规则。这更取决于您使用数据的方式:
using
。答案 1 :(得分:1)
只要重用实体,就应该重用数据上下文实例。由于实体附加到特定上下文,因此您应该在查询和更新之间继续使用相同的上下文。
我个人对Web应用程序的偏好是在请求期间使用单个数据上下文并将其置于EndRequest事件中。