【发布时间】:2018-08-13 09:23:07
【问题描述】:
我有一个名为 Process 的类,它有一个属性指向当前进程的父进程,另一个属性是当前进程的子进程列表。这两个属性又是 Process 类型。
public class Process
{
public int Id { get; set; }
public int? ParentId { get; set; }
public Process Parent { get; set; }
public List<Process> Children { get; set; }
// Nodes of the Process
public List<WfModelItem> Nodes { get; set; } // added
}
public class WfModelItem
{
public int Id { get; set; }
public int? ProcessId { get; set; }
public Process Process { get; set; }
}
当一个进程没有父进程时,它的ParentId是null,每个进程也可以有一些子进程。
我的配置如下:
public class ProcessConfiguration : EntityTypeConfiguration<Process>
{
public ProcessConfiguration()
{
this.HasMany(c => c.Children)
.WithMany();
this.HasOptional(p => p.Parent)
.WithMany();
}
}
不幸的是,当我想通过 dbContext.Processes.Add(aProcess) 将其添加到 db 时,我收到此错误:
无法从“Process”类型的属性“Parent”与“Process”类型的属性“Parent”建立关系。检查 InversePropertyAttribute 中的值以确保关系定义是唯一的,并且从一个导航属性引用到其对应的反向导航属性
如何正确配置 Process 类?谢谢。
更新:
我在 Process 类中添加了另一个属性,以确保问题得到充分描述。
【问题讨论】:
标签: c# entity-framework ef-fluent-api