我正在尝试使用Code First和Fluent API创建一个对象,该对象可以保存来自同一表的两个不同实体。换句话说,传输对象保存对两个不同的油罐对象的引用 - 一个是源,另一个是目标。
然而,当我使用以下代码时,我会收到一个异常,指出“引用关系将导致不允许的循环引用”。
然而,当我使用以下代码时,我会收到一个异常,指出“引用关系将导致不允许的循环引用”。
modelBuilder.Entity<Transfer>()
.HasRequired<Tank>(t => t.Source)
.WithMany(t => t.OutboundTransfers);
modelBuilder.Entity<Transfer>()
.HasRequired<Tank>(t => t.Destination)
.WithMany(t => t.InboundTransfers);
我的最佳猜测是它认为我将两个键都指向了同一个坦克?有什么办法可以实现这个功能吗?
编辑:从Entity Framework Code First - two Foreign Keys from same table中找到了答案,添加.WillCascadeOnDelete(false)。