gpt4 book ai didi

multithreading - Entity Framework +多线程+延迟加载

转载 作者:行者123 更新时间:2023-12-04 03:54:13 32 4
gpt4 key购买 nike

我在使用Entity Framework和多个线程时遇到问题,我想知道是否有一种解决方案可以保留延迟加载的能力。从我的理解来看,数据上下文不是线程安全的,这就是为什么当我有多个使用同一数据上下文的线程时,会出现各种数据读取器错误的原因。解决此问题的方法是对数据库的每个连接使用单独的数据上下文,然后销毁数据上下文。不幸的是,销毁我的数据上下文会阻止我进行延迟加载。

有没有一种模式可以让我在整个应用程序中拥有共享的上下文,但是仍然可以正确处理多个线程?

最佳答案

不,没有这样的解决方案。您在多线程应用程序中的选择是:

  • 每个线程的上下文
  • 单个上下文生成未代理的分离实体(无延迟加载,无更改跟踪),并且每次对该上下文的访问都具有同步性。

  • 对代理的附加实体执行第二种方法是灾难的方式。这将需要检测与上下文的所有隐藏交互,并使相关代码也同步。您可能会以在多个切换线程中运行的单线程进程结束。

    关于multithreading - Entity Framework +多线程+延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7176303/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com