I have the following entities:
public class Price
{
public int? PricelistId { get; set; }
public int? AgreementId { get; set; }
public virtual Pricelist Pricelist { get; set; }
public virtual Agreement Agreement { get; set; }
}
public class Agreement
{
public virtual ICollection<Price> Prices { get; }
}
public class Pricelist
{
public virtual ICollection<Price> Prices { get; }
}
I want Prices to cascade delete if I remove either a Pricelist or an Agreement.
Is this possible ? My fluent looks like this:
builder.Entity<Price>(entity =>
{
entity.HasOne(c => c.Agreement).WithMany(c => c.Prices).OnDelete(DeleteBehavior.Cascade);
entity.HasOne(c => c.Pricelist).WithMany(c => c.Prices).OnDelete(DeleteBehavior.Cascade);
});
When I try to commit I get the following error:
Introducing FOREIGN KEY constraint 'FK_Prices_Agreements_AgreementId' on table 'Prices' may cause
cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other
FOREIGN KEY constraints.
Could not create constraint or index. See previous errors.
question from:
https://stackoverflow.com/questions/65602779/how-to-support-multiple-cascade-paths-introducing-foreign-key-constraint-may-c 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…