我们遇到了mysql,实体框架6.0和存储库模式的问题。 这是我们尝试与多个用户同时添加实体时发生的错误。 我们不使用IQueryable返回类型(如其他主题中所建议的那样)。 这是返回错误的代码:
using (var dbContextTransaction = rep.Context.Database.BeginTransaction())
{
try
{
rep.Add(newSchedule);
rep.Save();
dbContextTransaction.Commit();
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
}
}
使用和不使用数据库事务时触发错误。 堆栈跟踪指向调用此部分代码的函数。 有什么想法解决这个问题吗?提前谢谢。
答案 0 :(得分:0)
EF上下文不是线程安全的,您需要为每个请求创建一个上下文。也许你可以注入工厂并询问背景。 或者在DI容器中将上下文设置为Transient。
希望这有帮助。