Mon*_*mer 27 entity-framework-core asp.net-core asp.net-core-2.0
对于Asp.net核心应用程序,我们必须使用哪一个?AddDbContext还是AddDbContextPool?根据EF Core文档,AddDbContextPool提供高性能但默认的Asp.net Core项目模板使用AddDbContext.
Gab*_*uci 42
答案就在这里(在"DbContext pooling"下):https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-2.0#dbcontext-pooling
DbContext不是线程安全的.因此,您不能同时DbContext为多个查询重用相同的对象(奇怪的事情发生).通常的解决方案是DbContext每次需要时创建一个新对象.这是什么AddDbContext.
但是,DbContext在先前的查询已经完成之后重新使用对象没有任何问题.这是什么AddDbContextPool.它使多个DbContext对象保持活动状态并为您提供未使用的对象,而不是每次都创建一个新对象.
您使用哪一个取决于您.两者都有效.池化有一些性能提升.但是文档警告说,如果您在DbContext类中使用不应在查询之间共享的任何私有属性,则不应使用它.我想这很少见,所以在大多数情况下合并应该是合适的.
| 归档时间: |
|
| 查看次数: |
11721 次 |
| 最近记录: |