yo2*_*011 3 c# entity-framework-core
我有一个拥有类型的实体,我想与另一个实体建立关系,但拥有的类型示例中存在外键属性:- 这是我的员工实体
public sealed class Employee : AuditedAggregateRoot
{
public WorkInformation WorkInformation { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
它包含一个名为 WorkInformation 的值 Object(Owned Type)
public class WorkInformation : ValueObject<WorkInformation>
{
private WorkInformation()
{
}
public int? DepartmentId { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要在员工和部门之间建立关系
public class Department : AuditedAggregateRoot
{
}
Run Code Online (Sandbox Code Playgroud)
我使用以下 Fluent 配置来执行此操作,但出现错误
builder.OwnsOne(e => e.WorkInformation)
//Add Employee Relations
builder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.WorkInformation.DepartmentId);
Run Code Online (Sandbox Code Playgroud)
如果我将 DepartmentId 移动到所有者实体,它工作正常。
不能通过所有者类型构建器配置拥有的类型(它们的属性、关系等)。相反,使用方法ReferenceOwnershipBuilder返回的OwnsOne:
var workInfomationBuilder = builder.OwnsOne(e => e.WorkInformation);
//Add Employee Relations
workInfomationBuilder.HasOne<Department>()
.WithMany()
.IsRequired(false)
.HasForeignKey(e => e.DepartmentId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |