【发布时间】:2010-12-13 08:49:54
【问题描述】:
我正在尝试使用实体框架为我的域模型建模。一个示例是包含 Content 类的 Page 类。
public class Page
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Content PageContent { get; set; }
}
public class Content
{
public IList<Version> Versions { get; private set; }
public Version GetLatestPublishedVersion()
{
//Some biz logic to get the latest published version
}
public Version GetLatestDraftVersion()
{
//Some biz logic to get the latest draft version
}
public void AddVersion() {}
public void DeleteVersion() {}
....
}
数据库模型没有Content的表,实际上表关系是:
Pages Table
----------
Id
Name
Versions Table
--------------
Id
PageId FK PAGES.ID
Title
Body
如何在概念模型中为 Content 类建模? 我尝试使用复杂类型,但它只包含标量属性。尝试使用实体类型,但我收到一条消息,基本上说在数据库中为 Content 类设置一个表,为什么?
我不觉得域模型是错误的,它是这样设计的,所以发布问题不在 Page 类上。典型的封装在这里工作。
还有其他人遇到过这个问题吗?
【问题讨论】:
标签: design-patterns entity-framework database-design orm