繁体   English   中英

域实体中的外键属性

[英]Foreign key properties in domain entities

在域驱动设计中,域模型应该完全不知道任何数据持久性细节。

假设一个Employee属于一个Department 域实体可能如下所示:

public Employee
{
    public string EmployeeId { get; set; }
    public string FirstName { get; set; }
    public string LastName{ get; set; }
    public Department Department { get; set; }
    public int DepartmentId { get; set; }
}

public Department
{
    public string DepartmentId { get; set; }
    public string Name{ get; set; }
}

Employee.DepartmentId在域模型中是否真的相关,还是基础架构存储细节?

当然Employee.Department是这个级别的重要关系?

在我的例子中,这些实体将存储在SQL数据库中,数据将由Entity Framework检索,因此Employee.DepartmentId列将存在于数据库中。

如果使用外键,实体框架中的生活会更容易:

为什么Entity Framework将现有对象重新插入我的数据库?

用缺席的外键来做

而且你说外键与领域模型并不真正相关是完全正确的。 它是持久性模型的一部分。

所以你需要决定加入哪个阵营。 你是纯粹主义者还是实用主义者? 是否分离域模型和持久性模型?

实体框架6.0下的ORM实体与域实体

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM