给定以下代码:
public static void SomeLoop()
{
using(var db = new ArcadeContext())
{
var changeRecs = db.ArcadeGameRanks.Where(c => c.Date == today);
foreach (var rankRecord in changeRecs)
{
var rank = SomeMethod(rankRecord.GameID);
UpdateGamesCatRank(rankRecord.GameID, rank);
}
}
}
public static void UpdateGamesCatRank(int gameID, int catRank)
{
using(var db = new ArcadeContext())
{
db.ExecuteCommand("UPDATE ArcadeGame SET CategoryRank = " + catRank + " WHERE ID = " + gameID);
}
}
当我运行 SQL Server Profiler 时,我会收到很多似乎会影响性能的重复消息Audit Login
:Audit Logout
我是用 C# 自学的,所以我知道我很有可能正在做一些非典型的事情。
我的问题是,上述设计模式是否被认为是好的?或者我应该将数据上下文作为参数重用/传递给函数,以便每次调用函数时都不需要重新建立它们?(如果我假设重复创建新数据上下文是登录和注销的原因)。