实体框架和多线程

时间:2010-08-26 10:45:08

标签: multithreading entity-framework .net-3.5

我有一个处理某些消息的WCF服务。我使用EntityFramework来检索消息。我将这些消息添加到ThreadPool队列,然后处理它们。处理完所有消息后,我调用实体框架上的更新来更新消息的状态。

在这个操作中,我随机获取错误 - “EntityMemberChanged或EntityComplexMemberChanged在没有首先使用相同属性名称在同一个更改跟踪器上调用EntityMemberChanging或EntityComplexMemberChanging时被调用。有关正确报告更改的信息,请参阅实体框架文档。”

当特定属性的ReportPropetychanged事件被触发时,抛出此错误。

任何帮助都将不胜感激。

此致

安迪

1 个答案:

答案 0 :(得分:15)

不要在线程之间共享ObjectContext或连接到它的任何对象。它是documented to be non-thread-safe