DbContextScope ReadOnly和Create Context在同一服务中

时间:2016-12-20 08:33:18

标签: c# entity-framework dbcontext

是否存在允许Service类同时处理读写操作的模式?我试图改造我们当前的服务层以使用DbContextScope github/mehdime/DbContextScope(没有repo层),我们在同一个类中进行读/写操作。

如果我使用单个IDbContextScopeFactory对象,则会抛出异常Cannot nest a read/write DbContextScope within a read-only DbContextScope

我不想创建两个服务类,只是为了处理读取或写入操作,有没有这个?如果它只是一个范围问题,也许我可以某种方式设计图层,为每种操作类型分别设置范围?

任何指导都非常有用!

1 个答案:

答案 0 :(得分:1)

我发现为什么会抛出异常。我试图在我引用工厂调用的同一行创建一个dbContext实例。

using (var db = _dbContextScopeFactory.Create().DBContexts.Get<*NAME*>()) {}

我认为这导致dbContext被错误地处理掉了。一旦我重构代码以在使用行之外检索dbContext,错误就会停止。

using (var fact = _dbContextScopeFactory.Create()) { var db = fact.DbContexts.Get<*NAME*>(); }