我遇到了Entity Framework和多线程的问题,我想知道是否有一种方法可以保持延迟加载的能力来解决这个问题。据我所知,数据上下文是非线程安全的,因此当我使用相同的数据上下文时,会出现各种数据读取器错误。解决该问题的方法是为每个与数据库连接的连接使用单独的数据上下文,然后销毁数据上下文。不幸的是,销毁我的数据上下文会阻止我进行延迟加载。
是否有一种模式可以允许我在应用程序中共享上下文,但仍然正确处理多个线程?
是否有一种模式可以允许我在应用程序中共享上下文,但仍然正确处理多个线程?
不,目前没有这样的解决方案。在多线程应用程序中,您的选择为:
对于附有代理附加实体的第二种方法会导致灾难。它需要检测与上下文的所有隐藏交互,并使相关代码也同步。您最终可能会得到在多个切换线程中运行的单线程进程。