我正在使用 ASP.NET MVC3 和 SQL Server 中的数据库开发一个 Web 应用程序项目。还有一个移动应用程序通过 REST 服务使用来自同一数据库的数据。以下是我的应用程序的一些层:
模型- ADO.NET 数据模型,使用实体框架
数据访问层- 具有从数据库中检索数据的查询的存储库
Web 应用程序- MVC3 项目,使用存储库,使用结构映射和 DI 松散耦合,数据库上下文在 HttpRequest 结束时被释放
核心- DAL 和服务层之间的另一层,使用存储库并将数据公开给服务层。业务逻辑层的排序。
服务层- REST 服务,了解核心层但不了解 DAL。将数据映射到 DTO 并暴露给客户端
我遇到的这种应用程序架构的问题是服务层上的松散耦合。服务层参考核心层。核心层引用了数据访问层并使用其存储库。但是,存储库没有默认构造函数。他们期望 1 个参数及其数据库对象上下文(一次性对象)。
直接在我的网站上使用存储库不是问题。我正在使用结构图,而 DI 使其松散耦合。每个上下文都在 HttpRequest 的末尾进行处理。
问题在于服务层和核心层。我也想在那里有松散耦合,但不知道如何实现它?如何将数据上下文注入其中并确保它在特定时刻得到处理?我想听听一些关于如何将它们组合在一起的建议。