Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как вызвать делегат beginInvoke в DBContext

Автор вопроса: YogiОтветов: 1

у меня такой код

 using (SomeDBContext db = new SomeDBContext())
 {
     foreach (var r in someColection)
        {
           MyDelegate.BeginInvoke(db, parm1, parm2, etc, null, null);
        }
 }

Проблема в том, что функция, которая передается MyDelegate, использует переданный ей db dbcontext, и, поскольку делегат запускается асинхронно, контекст db был закрыт, пока функция пытается получить доступ к базе данных. Может ли кто-нибудь помочь решить эту проблему? Большое спасибо!

asynchronousdelegatesentity-frameworkdbcontext

Ответы

Ответ 1 · рейтинг 1 · George Vovos

Контекст не является потокобезопасным, у вас возникнут проблемы, если вы попытаетесь его использовать
(к сожалению, иногда вы не заметите ничего плохого...)

В любом случае, лучший подход - создать новый контекст внутри вашего метода, который решит вашу первоначальную проблему.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы