我需要帮助使用Entity Framework构建数据访问层。以下是要求:
我之前从未参与此范围的任何工作,并希望获得有关如何构建此解决方案的任何帮助。到目前为止我所拥有的是:
项目1:DataLayer
•包含纯EF生成的数据模型
项目2:BusinessLayer
•包含将DataLayer中的对象转换为视图使用的业务对象的逻辑,反之亦然。大多数(但不是全部)逻辑在应用程序之间共享。 •包含所有或多个应用程序使用的常见DTO /业务对象
项目3:ServiceLayer.Application1
•包含应用程序1的所有DTO /业务对象 •包含应用程序1
使用的存储库项目4:ServiceLayer.Application2
•包含Application 2的所有DTO /业务对象 •包含应用程序2使用的存储库
说一个MVC应用程序使用数据层来获取IQueryable,而业务对象FacultyFormattedForAView由来自6个不同表的数据组成,其中一些业务逻辑被抛到顶部。以下是我设想的事情:
使用此结构,业务层中将存在通用的命令调色板,以避免任何代码重复,并且存储库仅显示特定应用程序可访问的命令,并提供特定于该应用程序的其他格式。
我使用IQueryable而不是IEnumerable,因此可以使用分页和排序。看到我只是将业务对象/ DTO暴露给开发人员,我认为这是好的,但我想要它,如果他们不必为了实际执行查询而做ToList()或任何事情。
这是我能想到的最好的,但我无法摆脱这样做的感觉。
我会很感激任何反馈。
谢谢。