实体框架 - 队列异步上下文

时间:2016-07-28 09:35:29

标签: c# entity-framework asynchronous

    Task task1 = serviceA.DoSomething();
    Task task2 = serviceB.DoSomethingElse();

    await Task.WhenAll(task1, task2);

服务不知道它们是在数据库上运行,但如果两个任务最终查询一个数据库,则会出现并发异常。

Does Entity Framework support parallel async queries?中所述,EF不支持多个异步查询。

是否有模式或某种方法对这些查询/命令进行排队并一个接一个地执行它们(但如果他们遇到单独的数据库,仍会加速执行)?

也许更好的解决方案是将dbContext从每个请求更改为transient和new up dbContext,每个查询都有单独的连接?这对性能有何影响? 首先,我看到每个dbcontext都是单独的事务,并将它们全部提交而不是单个事务。

0 个答案:

没有答案