我有这样的代码
using (SomeDBContext db = new SomeDBContext())
{
foreach (var r in someColection)
{
MyDelegate.BeginInvoke(db, parm1, parm2, etc, null, null);
}
}
问题是,提供给MyDelegate的函数使用传递给它的db dbcontext,并且由于委托是异步运行的,因此在函数尝试访问数据库时关闭了db上下文。有人可以帮助解决这个问题吗?谢谢你太多了!
答案 0 :(得分:1)
上下文不是线程安全的,如果你尝试使用它就会遇到问题 (不幸的是,有时你不会发现任何错误...)
无论如何,最好的方法是在你的方法中创建一个新的Context来解决你原来的问题