【发布时间】:2014-04-08 15:22:01
【问题描述】:
我一直在开发一个多层 MVC 应用程序,现在回顾一下我到目前为止所做的工作。尤其是现在我已经返回并再次阅读了有关多层/层的大量信息(那里有大量信息,但没有真正的一致性或标准),我现在正在质疑我的数据层。
我强烈怀疑我没有正确地实现它(符合良好的设计)并且可能已经偏离正题。这是我所做的:
网页界面
- 包括控制器、视图模型、视图
BLL
-
包括包含以下内容的服务类:
- 内存中的操作代码,例如收藏...
- 数据访问代码,例如EF linq 到实体。
数据
- /Models 包含域类的文件夹
- /DAL 文件夹,其中包含 DbContext 类
...
退后一步,重新审视,这是我所看到的,也是我所质疑的:
在 BLL 中,此处的 EF 代码看起来不正确。它应该在数据层。有人可以确认一下吗?
我的数据层(即数据项目)包含上下文类和域模型。我读过人们将他们的数据层分为 a) DAL 和 b) 模型。 因此,我猜 DAL 层将包含上下文类和数据 (EF) 代码,而模型层将仅包含域模型。这最终会使您总共有 4 层。可能是太过分了还是设计不错?
在哪里使用 AutoMapper 进行 EF 到 ViewModel 映射的任何偏好?我目前正在 Web 层中进行映射,但怀疑它在 BLL 中可能更整洁。有些映射只能在 Web 层完成,例如下拉列表的 SelectListItem。
【问题讨论】:
标签: asp.net-mvc data-access-layer bll