【发布时间】:2015-05-13 09:17:04
【问题描述】:
因此,我正在尝试学习如何在 WPF 应用程序中保持良好的结构,并且很难找出使用 BLL 和 DAL 的最佳方式。
我的 BLL 中已经有几个模型,例如:
客户, 帐户, 等等
我还使用 MVVMLight 工具包让事情变得更简单,所以我的几乎所有模型都继承自“ObservableObject”。
现在我要创建 DAL 并使用实体框架。由于我所有的模型都使用 ObservableObject 我觉得我不能只将它们移动到我的 DAL 来创建我的表(代码优先)。
最好的方法是在我的 DAL 中创建几乎相同的对象,并在检索时将所有数据映射到 BLL 中的旧模型?我知道这有点双倍的工作,所以但看不出我怎样才能让它更干净(除了停止从 ObservableObject 继承)
【问题讨论】:
-
对于不熟悉上述缩写的任何用户,BLL 代表业务逻辑层,DAL 代表数据访问层。
-
通常,从 DAL 生成的对象应该不在 BLL 中使用,因此应该复制到 BLL 对象。请注意,您在两层中的对象不应真正几乎相同...您的业务对象应该(或至少可以)是分层的,不像您的 DAL 对象。
-
我明白了,是的,那我就在正确的轨道上。我对此有一个简短的后续问题,是否有任何正常的命名约定?我想在 DAL 和 BLL 中都有“客户”可能会有点混乱。有像 CustomerBll、CustomerDto 这样的东西是正常的吗?
-
一个是域/BLL 的 CustomerEntity 和 DAL 的任何表名(特别是如果您使用实体框架)
-
我个人将
Db添加到我的 DAL 类的前面以避免该问题,例如。DbUser,但你可以使用任何你觉得舒服的东西。
标签: c# wpf data-access-layer bll