实体框架DbContext&异步性:如何正确管理?

时间:2017-10-02 09:03:58

标签: c# asynchronous dependency-injection async-await entity-framework-6

我有一个关于在REST Web服务服务器上异步使用dbcontext的设计问题。 我非常"新"对于C#世界,我来自Java背景。这是我的第一个C#应用程序

我目前正在开发该服务器作为Angular SPA的后端。 C#.net 4.5,Web API 2,MVC 5,实体框架6,用于依赖注入的Unity。

我已经使用了那个" old"教程作为开始应用程序开发的基础: https://www.codeproject.com/Articles/990492/RESTful-Day-sharp-Enterprise-Level-Application#_Toc418969124

该应用程序的设计(以及我的设计)如下:

1)控制器层(Web服务入口点)

2)业务服务层(业务逻辑所在的位置)

3)工作单元/存储库层

我在过去几周阅读并学到了很多东西,其中包括许多解释为什么repo / UoW模式已经过时的文章,因为它实际上是与DbContext一起使用时抽象的抽象。

以下是我的问题:

我想为我的应用程序实现异步数据库请求,因为它旨在处理Web服务。 问题似乎是Entity Framework DbContext对象不是线程安全的。似乎必须严格管理以防止重叠。从我到目前为止所读到的内容来看,似乎应该在请求范围中注入DbContext。

我想尽可能多:

1)将业务逻辑保留在服务层内

2)摆脱工作单元/存储库层(使用服务层内的DBContext)

3)正确地注入和处理DBContext,以便在没有麻烦的情况下使用异步性。

我正在寻找一些建议或示例,以便在异步上下文中使用我的 DbContext对象

0 个答案:

没有答案
相关问题