【问题标题】:Domain Design class decisions领域设计类决策
【发布时间】:2010-09-08 20:55:21
【问题描述】:

我正在创建一个简单的网站来更熟悉 MVC 2.0。自 1.0 以来,我一直在做 Web 表单,并准备开始对 MVC 的 Web 表单站点进行大修。所以想构建一个更小的应用程序来计算学习曲线。

所以我要构建一个时间跟踪应用程序。我正在使用 ASP.NET MVC 2.0 和 LINQ to SQL。我计划尝试一下存储库和工作单元,因为我将在大型网站中使用它们。

我的数据库只有 4 个表 Category、Project、Assignment 和 User。所以我将在 LINQ2SQL 中有这 4 个实体。然后我将拥有 ProjectDetails、ProjectSummary、AssignmentDetails 等的 POCO。但是那些是合并表实体吗?还是他们每个人都需要自己的存储库?还是应该将它们放入聚合存储库中?

如果您需要更多详细信息,请告诉我

谢谢

【问题讨论】:

标签: asp.net-mvc linq-to-sql repository-pattern unit-of-work


【解决方案1】:

您的域 POCO 不必与您的数据库表具有一对一的关系。您的 Repositories 类也不必仅限于读取/写入单个表。

在域驱动设计中,您通常首先从域模型开始,然后弄清楚如何将它们持久化到您的存储机制中,无论是 SQL、NoSQL、内存缓存等。

【讨论】:

  • 由于它们是构建域模型的多种方式,您如何决定采用哪种方式。我找到了 SRP,一个存储库(网关),我确定它们是其他的。
  • 我们的大多数模型与我们的数据库表是一对一的,对于那些我们有一个存储库,每个存储库都可以读取/写入单个表。在模型更复杂的情况下,我们有一个单一的存储库,可以读取/写入同一数据库中的多个表。但是这些存储库更难维护,因此我们尽量将它们保持在最低限度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多