MySql.Data.MySqlClient.MySqlException: уже существует открытый DataReader, связанный с этим Соединением, который должен быть закрыт сначала

0

у нас есть проблема с mysql, сущностью framework 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);
}

}

Ошибка, запущенная с транзакцией без транзакции. Stack trace point к функции, вызывающей эту часть кода. Любая идея для решения этой проблемы? Заранее спасибо.

  • 0
    что является исключением?
  • 1
    Это приложение MVC? rep статичен?
Показать ещё 4 комментария
Теги:
linq
entity-framework

1 ответ

0
Лучший ответ

Контекст EF не является потокобезопасным, вам нужно создать один контекст для каждого запроса. Возможно, вы можете ввести завод и спросить контекст. Или установите контекст как Transient в вашем контейнере DI.

Надеюсь это поможет.

  • 0
    Спасибо, теперь я создаю один контекст для запроса в классе помощника, это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню