我有一个处理一些消息的 WCF 服务。我使用 EntityFramework 来检索消息。我将这些消息添加到 ThreadPool 队列,然后处理它们。处理完所有消息后,我调用 Entity Framework 上的更新来更新消息的状态。
在此操作期间,我随机收到错误消息 - “EntityMemberChanged 或 EntityComplexMemberChanged 被调用,而没有先在具有相同属性名称的同一更改跟踪器上调用 EntityMemberChanging 或 EntityComplexMemberChanging。有关正确报告更改的信息,请参阅 Entity Framework 文档。”
触发特定属性的 ReportPropetychanged 事件时会引发此错误。
任何帮助,将不胜感激。
问候
安迪
最佳答案
不要在线程之间共享 ObjectContext —— 或任何附加到它的对象。它是 documented to be non-thread-safe 。
关于multithreading - Entity Framework 和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574329/