【发布时间】:2010-11-30 13:19:48
【问题描述】:
我正在开始一个新项目,我想首先对客户需要存储的数据进行建模。但是,我不知道从哪里开始。到目前为止,我正在尝试为两个简单的实体建模,Event 和 Address。一个Event 可以有多个Addresses,一个Address 可以与多个Events 关联。这就是我所拥有的:
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Address> Addresses { get; set; }
}
public class Address
{
public int Id { get; set; }
public string Street { get; set; }
public string Zip { get; set; }
public List<Event> Events { get; set; }
}
但是,当我尝试为这两个对象创建测试存储库时遇到了问题。它们具有循环依赖关系:Event 无法填充其 Addresses 列表,直到 Address 完全填充,但 Address 无法填充其 Events 列表,直到 Events 完全填充。这让我相信我不知道自己在做什么。
我已经阅读了很多关于 POCO、DTO、DAO 和 DDD 的内容,但无论我多么努力地理解这些概念,这些概念对我来说都没有多大意义。我刚从大学毕业,直到一周前我才听说过“领域模型”这个词。
从概念上讲,我想做的是首先创建代表我需要存储的数据类型的类(我相信是Entities)。这些类还将包含验证逻辑(这是 POCO 吗?)。之后,我想设置存储库来访问这些对象的集合并填充它们可能具有的任何关系(例如,Event 将填充Addresses 的列表)[这是对持久性的无知吗?]。只有在所有这些都到位之后,我才想创建数据库来保存数据(通过 DAO?ORM 是 DAO 吗?我将如何使用 LINQ-To-SQL 来做到这一点?)。 IoC 在哪里适合所有这些,或者如果我知道我的后端永远不会改变并且我只会访问一个数据库,它是否完全不适合?
如果还不是很明显,我很困惑我应该从哪里开始。我对我想做的事情有一个很好的概念,我只是不知道如何实现它。有人可以就一个好的起点向我提供建议吗?谢谢。
【问题讨论】:
标签: c# domain-driven-design modeling