如何在DBContext

时间:2016-10-22 00:57:15

标签: entity-framework asynchronous delegates dbcontext

我有这样的代码

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

问题是,提供给MyDelegate的函数使用传递给它的db dbcontext,并且由于委托是异步运行的,因此在函数尝试访问数据库时关闭了db上下文。有人可以帮助解决这个问题吗?谢谢你太多了!

1 个答案:

答案 0 :(得分:1)

上下文不是线程安全的,如果你尝试使用它就会遇到问题 (不幸的是,有时你不会发现任何错误...)

无论如何,最好的方法是在你的方法中创建一个新的Context来解决你原来的问题