【发布时间】:2013-12-13 11:55:29
【问题描述】:
下面是通过Entity Framework 6 Fluent API直接映射到数据库的Project代码优先类:
public class Project
{
public Project()
{}
public int ProjectId { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public ICollection<ProjectVersion> ProjectVersions { get; set; }
}
领域驱动设计中的贫血模型是一种反模式。我想在我的 域模型 中使用同一个类,而不是创建一个单独的 Project 域类并且必须在存储库中执行两者之间的复杂映射(以及我们拥有的数百个其他模型)。
这就是Project 作为领域模型类的样子:
public class Project
{
private readonly List<ProjectVersion> projectVersions;
public Project(string name, string description)
{
Name = name;
Description = description;
projectVersions = new List<ProjectVersion>();
}
public int ProjectId { get; private set; }
public string Name { get; set; }
public bool IsActive { get; private set; }
public IEnumerable<ProjectVersion> ProjectVersions
{
get
{
return projectVersions;
}
}
public void AddVersion(ProjectVersion version)
{
projectVersions.Add(version);
}
}
From what I have read,我可以使用 EF 的 Fluent API 映射到私有字段。
这里有什么不足吗?我走的是不必要的捷径吗?
我能预见的唯一问题是,当业务域模型本质上由来自两个或多个数据实体的数据组成时。
【问题讨论】:
标签: entity-framework domain-driven-design automapper domain-model onion-architecture