【发布时间】:2015-09-09 06:16:54
【问题描述】:
当我为update 或insert 调用需要dbcontext 的方法时
但只想要一个saveChange() 喜欢关注
操作:登录
TempDBEntity context = new TempDBEntity();
var temp = context.Users.Where(m => m.user_unique_id == 1).FirstOrDefault();
temp.timestamp = new DateTime();
temp.AddLog("Login");
context.SaveChanges();
功能:添加日志
public void AddLog(string activity){
TempDBEntity context2 = new TempDBEntity();
var log = new UserLog();
log.user_id = this.user_id;
log.activity = activity;
context2.UserLog.Add(log);
context2.SaveChanges();
}
如您所见,有两个SaveChanges(),我只需要一个SaveChanges()。
我是否应该将DBContext 作为AddLog() 的另一个参数传递
或者在这种情况下我应该为dbcontext声明静态变量吗?
非常感谢。
【问题讨论】:
-
不调用第一个 savechanges() 怎么样
-
不先调用 savechange?那么就不会添加了。
-
我认为将上下文作为参数传递会比将其声明为静态变量更好。
-
但在实际应用中,有很多方法存在这种冲突。我是否必须将参数传递给所有这些方法?
-
除非您的网站只供 one 人使用,否则静态变量并不是正确的解决方案。几乎所有的 asp.net 网站都会被 多个 用户同时使用 - 你不希望他们都共享 same 上下文对象。
标签: c# asp.net-mvc entity-framework