【发布时间】:2018-04-04 13:23:32
【问题描述】:
我们遇到了 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);
}
}
使用和不使用数据库事务触发的错误。 堆栈跟踪指向调用这部分代码的函数。 有解决这个问题的想法吗?提前致谢。
【问题讨论】:
-
有什么异常?
-
这是一个 MVC 应用程序吗?
rep是静态的吗? -
意外异常 - MySql.Data.MySqlClient.MySqlException:已经有一个打开的 DataReader 与此 Connection 关联,必须先关闭。是的,MVC 应用和代表是静态的
-
由于它是静态的,所有请求都将使用相同的实例。确保为每个请求实例化一个新实例。
-
谢谢,我们试试,让你知道
标签: c# mysql entity-framework linq