私は 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);