我正在以下出現InvalidOperationException當我試圖挽救實體有一個一對一的關係:出現InvalidOperationException由於實體框架的核心循環依賴
System.InvalidOperationException:無法保存更改因爲在數據中檢測到 循環依賴要保存: 'ForeignKey的: DeviceLicenseSubscriptionPlan {' LicenseId '} - > DeviceLicense {' ID '} 獨特ToPrincipal:許可,ForeignKey的:DeviceLicense {' SubscriptionPlanId'} - > DeviceLicenseSubscriptionPlan {'Id'} T oPrincipal:SubscriptionPlan'。
這裏是我的產品型號名稱:
public class DeviceLicense
{
public Guid? Id { get; set; }
public int DeviceLimit { get; set; }
public DeviceLicenseSubscriptionPlan SubscriptionPlan { get; set; } = new DeviceLicenseSubscriptionPlan();
}
public class DeviceLicenseSubscriptionPlan
{
public Guid? Id { get; set; }
public Guid? LicenseId { get; set; }
public DeviceLicense License { get; set; }
}
這裏OnModelCreating()
:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var deviceLicense = modelBuilder.Entity<DeviceLicense>().ToTable("DeviceLicense");
deviceLicense.HasKey(l => l.Id);
deviceLicense.HasOne<DeviceLicenseSubscriptionPlan>()
.WithOne(s => s.License)
.HasForeignKey<DeviceLicenseSubscriptionPlan>(s => s.LicenseId)
.HasConstraintName("LicenseId");
deviceLicense.Property(l => l.DeviceLimit).HasColumnName("DeviceLimit");
var deviceLicenseSubPlan = modelBuilder.Entity<DeviceLicenseSubscriptionPlan>().ToTable("DeviceLicenseSubscriptionPlan");
deviceLicenseSubPlan.HasKey(s => s.Id);
deviceLicenseSubPlan.Property(s => s.Id).HasColumnName("SubscriptionPlanId");
base.OnModelCreating(modelBuilder);
}
我使用EF核心2.0。我可能在模型構建器中做錯了什麼?任何提示?
完美,謝謝! –