gpt4 book ai didi

asp.net-core - AddDbContext 或 AddDbContextPool

转载 作者:行者123 更新时间:2023-12-02 10:36:16 25 4
gpt4 key购买 nike

对于 Asp.net Core 应用程序,我们必须使用哪一个? AddDbContext 还是 AddDbContextPool?根据 EF Core 文档,AddDbContextPool 提供高性能,但默认的 Asp.net Core 项目模板使用 AddDbContext

最佳答案

答案就在这里(在“DbContext池”下):https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-2.0#dbcontext-pooling

DbContext 不是线程安全的。因此,您不能同时为多个查询重用同一个 DbContext 对象(会发生奇怪的事情)。通常的解决方案是每次需要时创建一个新的 DbContext 对象。这就是 AddDbContext 的作用。

但是,在上一个查询完成后重用 DbContext 对象并没有什么问题。这就是 AddDbContextPool 的作用。它使多个 DbContext 对象保持事件状态,并为您提供一个未使用的对象,而不是每次都创建一个新对象。

您使用哪一个取决于您。两者都会起作用。池化有一些性能提升。但是,文档警告说,如果您在 DbContext 类中使用任何不应在查询之间共享的私有(private)属性,则不应使用它。我认为这种情况很少见,因此在大多数情况下池化应该是合适的。

关于asp.net-core - AddDbContext 或 AddDbContextPool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48443567/

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