我有一个关于在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对象。