1
1自我的關係我有型ScheduleItem
1:EF
public class ScheduleItem : EntityBase
{
[MaxLength(500)]
[Required]
public string TitleAr { get; set; }
[MaxLength(300)]
[Required]
public string TitleEn { get; set; }
public int? ParentScheduleItemId { get; set; }
public int? PreviousDestinationId { get; set; }
public int? NextDestinationId { get; set; }
public ScheduleItem ParentScheduleItem { get; set; }
[InverseProperty("ParentScheduleItem")]
public ICollection<ScheduleItem> ChildrenScheduleItems { set; get; }
public ScheduleItem PreviousDestination { get; set; }
public ScheduleItem NextDestination { get; set; }
}
的對象時,此對象是父對象,它裏面有孩子的集合。
每個孩子都有對下一個孩子的可選引用(最後一個孩子將擁有NextDestinationId = null)和對前一孩子的可選引用(對於第一個孩子,PreviousDestinationId應該爲空)。
型號Builder代碼:
modelBuilder.Entity<ScheduleItem>().HasOptional(t => t.NextDestination).WithMany().HasForeignKey(t => t.NextDestinationId);
modelBuilder.Entity<ScheduleItem>().HasOptional(t => t.PreviousDestination).WithMany().HasForeignKey(t => t.PreviousDestinationId);
然而,當保存我得到這個錯誤 無法確定相關的操作有效的排序。由於外鍵約束,模型要求或商店生成的值,可能會存在依存關係。
這個問題的解決方案是什麼?我必須撥打SaveChanges()
兩次嗎?
的可能的複製[如何映射實體框架代碼優先方法自我遞推關係](http://stackoverflow.com/questions/ 12656914/how-to-map-recursive-relation-on-self-in-entity-framework-code-first-approach)@OP:勾選這個答案。 Imho,這是一個完美的解決方案 –