【问题标题】:Best way to model entities from DAL in the presentation layer?在表示层中从 DAL 建模实体的最佳方法?
【发布时间】:2011-10-07 03:07:54
【问题描述】:

我有一个包含三个项目的 ASP.NET MVC 解决方案:

  1. SquarkMVC
  2. SquarkBLL
  3. SquarkDAL

SquarkDAL 层为数据库中的每个对象都有 Linq2SQL 类。 BLL 引用 DAL 以便在 DB 上执行业务逻辑。

我的问题是……不必在 MVC 层中引用 DAL,我应该如何在 MVC 层中对 DB 的实体进行建模?例如,如果我在 MVC 层有一个注册表单,那么获取该信息的最佳方式是什么,将其传递给业务层,然后再将其传递给数据层?我不希望 MVC 层了解有关 DAL 的任何信息。

我发现this answer on another post... 是否普遍认为克服这个问题的最佳方法是创建一个传输对象,以便将信息从表示层传递到业​​务层,然后将转换将信息放入 DAL 使用的实体类中?

希望这是有道理的。

【问题讨论】:

    标签: asp.net linq-to-sql n-tier-architecture


    【解决方案1】:

    使用对象是执行此操作的常用方法。通常 DTO(数据传输对象)是具有一组属性的“愚蠢”POCO,并且其行为类似于“结构”,但是,如果您对它们进行验证和更多逻辑(视图逻辑),您将拥有一个 视图模型,您可以使用它们与控制器一起工作。这个应该使用(业务层的)模型。

    此外,业务层永远不应该引用 DAL,因为您的业务模型应该独立于存储。 相反,数据访问层应该引用模型,并选择正确的持久化方式。您可以使用存储库模式来实现它。

    反正有很多关于领域驱动设计的书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-25
      • 2013-06-12
      • 2013-10-07
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      相关资源
      最近更新 更多