在使用ASP.NET Core应用程序时,我似乎无法找到创建单独的服务层和存储库层程序集的好方法。我正在尝试使用EntityFrameworkCore和Azure存储。我找到了一些解决方法,他们使用.Net核心应用程序作为程序集,但它也会导致各种其他问题。
非常感谢任何帮助。
答案 0 :(得分:0)
我不确定您遇到了什么问题,但这是一个很好的多项目启动器解决方案,适用于ASP.NET核心Web应用程序,由责任分解为项目:
https://github.com/ardalis/cleanarchitecture
这有帮助吗?
答案 1 :(得分:0)
设置多层应用程序。
要记住的一些事项:
说你的主项目有Db模型和控制器,而DataAccessLayer有这些服务。那么DataAccessLayer需要来自主项目的模型,而Controller需要来自DataAccessLayer的服务,从而创建循环依赖。
简单的抽象设置可以是:
DataAccessLayer将需要EntityFramework作为参考。 DatabaseContext也应该在这个项目中(以及数据库迁移)。
还要确保使用DI / IOC容器注册和解决服务。
这将是您对存储库项目的设置。
你遇到了哪些其他问题?
正如您在此图片中看到的那样。存储库模式可以轻松切换数据库。
如果您永远不会在dataAccess层上切换数据库或使用单元测试,那么实现存储库模式基本上是不值得的。 (太多的工作,与利益相比)