У меня есть отдел таблиц, который ссылается на себя. Чтобы построить иерархию, каждый отдел в иерархии должен ссылаться на отдел верхнего уровня.
Вот мой код:
public class Department
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Department Department { get; set; }
}
Я использовал приведенный ниже код для установления sh родительских и дочерних отношений для всех отделы.
В моей базе данных ParentId указывает, есть ли в отделе какие-либо отделы высшего уровня в иерархии?
public void ConfigureDepartmentContext(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Department>(department=>
{
department.HasKey(a => new { a.Id });
department.Property(a => a.Id).HasColumnName("ID");
department.Property(a => a.Name).HasColumnName("Department_Name");
department.Property(a => a.ParentId ).HasColumnName("Parent_Id ");
});
modelBuilder.Entity<Department>()
.HasOne(f => f.Department)
.WithOne(f => f.Department)
.HasForeignKey(f => f.ParentId);
}
I я получаю ниже ошибка
не может преобразовать лямбда-выражение в тип, потому что это не тип делегата