如何使用线程池和实体框架处理数据库操作?

3

我真的需要一些代码示例...我想要做的是:

GetCollectionFromDatabase
foreach item
{
    resetEvents[i] = new ManualResetEvent(false);
    var makeRequest = new MakeRequest(resetEvents[i]);

    ThreadPool.QueueUserWorkItem(new WaitCallback(makeRequest.ThreadPoolCallback), i);
}
db.Save();

ThreadPoolCallback    
{
    update/delete the row 
}

这是正确的方法吗?我需要将db作为ThreadPoolCallBack的引用传递吗?

1个回答

1

您需要在线程池回调中创建上下文。实体框架上下文不是多线程的,不能被不同的线程共享。

我理解db是您的数据库上下文。因此,您需要在ThreadPoolCallback中创建一个新的上下文,并在其中保存它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接