0

私は self との関係でコードのクラスを持っています。

 public class OrganizationalUnit
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "")]
    [MaxLength(100, ErrorMessage = "")]
    public string Name { get; set; }

    [ForeignKey("Type")]
    [Required(ErrorMessage = "")]
    public int TypeId { get; set; }
    public virtual Type Type { get; set; }

    [ForeignKey("Parent")]
    public int? ParentId { get; set; }
    public virtual OrganizationalUnit ParentUnit { get; set; }}

    public  ICollection<OrganizationalUnit> OrganizationalSubUnits { get; set; }

OrganizationalUnit の項目を編集したい場合、エラーが発生します

多重度の制約に違反しています。関係「AutomationDataEntryModel.OrganizationalUnit_Parent」のロール「OrganizationalUnit_Parent_Target」の多重度は 1 または 0..1 です。

ビューモデルで

 OrganizationalUnit unit = db.OrganizationalUnit.Find(SelectedOrganizationalUnit.Id);
 unit.Name = Name;
 unit.TypeId =Type;
 unit.ParentId = ParentOrganizationalUnit;

 db.SaveChanges();

編集

私はそれに流暢なAPIを使用します

 modelBuilder.Entity<OrganizationalUnit>()
   .HasOptional(a => a.ParentOrganizationalUnit)
   .WithMany(a => a.OrganizationalSubUnits)
   .HasForeignKey(a => a.ParentOrganizationalUnitId);
4

0 に答える 0