gpt4 book ai didi

c# - 与拥有的实体内的属性创建关系会导致错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:16 24 4
gpt4 key购买 nike

我有一个拥有类型的实体,我想与另一个实体建立关系,但外键属性存在于拥有的类型示例中:-这是我的员工实体

public sealed class Employee : AuditedAggregateRoot
{
public WorkInformation WorkInformation { get; private set; }
}

它包含一个名为 WorkInformation 的值对象(自有类型)

public class WorkInformation : ValueObject<WorkInformation>
{
private WorkInformation()
{

}
public int? DepartmentId { get; private set; }
}

我需要在员工和部门之间建立关系

public class Department : AuditedAggregateRoot
{

}

我使用以下 Fluent 配置来执行此操作,但出现错误

  builder.OwnsOne(e => e.WorkInformation)  

//Add Employee Relations
builder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.WorkInformation.DepartmentId);

我得到了这个错误 enter image description here

如果我将 DepartmentId 移动到所有者实体,它工作正常。

最佳答案

拥有的类型(它们的属性、关系等)不能通过所有者类型构建器进行配置。相反,使用 OwnsOne 方法返回的 ReferenceOwnershipBuilder:

var workInfomationBuilder = builder.OwnsOne(e => e.WorkInformation);

//Add Employee Relations
workInfomationBuilder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.DepartmentId);

关于c# - 与拥有的实体内的属性创建关系会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49298739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com