Raf*_*afe 8 entity-framework entity-framework-core .net-core ef-core-3.0
有些人可能熟悉DbContextScope 库,它允许您在代码中嵌套作用域,并允许这些作用域共享公共 DbContext。这个想法是 DbContext 由作用域库为您管理,而不是在上下文上调用 SaveChanges(),而是在作用域上调用 SaveChanges()。神奇的发生是因为作用域只会在最外层调用 SaveChanges() 时保存对上下文的所有更改,因此在 DbContext 上执行的所有嵌套操作都保存在外部作用域级别的单个事务中。
现在 DI 是 .NET Core 中的一等公民,看来作用域也成为了 .NET Core 生态系统的重要组成部分,EF Core 团队知道这一点,已经实现了基于允许 DbContexts 被注入的作用域DI 系统,并且(我假设)允许更改保存发生在范围级别,而不是以某种方式直接发生在 DbContext 上。
所以我的问题是:
更新:截至 2020 年 6 月,有多个 DbContextScope 分支可与 EF Core 3 配合使用。
更新:可以在此处查看此项目的分叉:https : //github.com/mehdime/DbContextScope/network
有几个 EF Core 3 版本......我还没有尝试过,但是你去吧。
Dav*_*oft -2
DbContext 共享内置于 EF 的依赖注入设计中。
DI 容器将为每个 Web 请求生成一个作用域 DbContext 实例。您可以从依赖于它的任何组件共享 DbContext 实例,并调用 SaveChanges(),或管理外部控制器中的事务。
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |