0
即时通讯使用实体框架6代码优先与MySQL。实体框架在删除时实体被加载时级联
我有以下实体和流利的配置:
public class Cotizacion
{
public int CotizacionId { get; set; }
public int Numero { get; set; }
public DateTime Fecha { get; set; }
public int? ClienteId { get; set; }
public Cliente Cliente { get; set; }
public List<ItemsCotizacion> Items { get; set; }
}
public class Cliente
{
public int ClienteId { get; set; }
public string RazonSocial { get; set; }
public string Cuit { get; set; }
public string Direccion { get; set; }
public string Telefono { get; set; }
public List<Cotizacion> Cotizaciones { get; set; }
}
public class ConfigCliente : EntityTypeConfiguration<Cliente>
{
public ConfigCliente()
{
Property(c => c.RazonSocial).IsRequired().HasMaxLength(100);
Property(c => c.Direccion).IsOptional().HasMaxLength(100);
Property(c => c.Cuit).IsOptional().HasMaxLength(15);
Property(c => c.Telefono).IsOptional().HasMaxLength(100);
HasKey(c => c.ClienteId);
HasMany(c => c.Cotizaciones).WithRequired(cot => cot.Cliente).WillCascadeOnDelete(true);
}
}
public class ConfigCotizacion : EntityTypeConfiguration<Cotizacion>
{
public ConfigCotizacion()
{
Property(c => c.Fecha).IsRequired();
HasRequired(c => c.Items);
HasMany(c => c.Items).WithRequired(i => i.Cotizacion).WillCascadeOnDelete(true);
HasRequired(c => c.Cliente).WithMany(cot => cot.Cotizaciones);
}
}
我想,当我删除实体“Cliente” EF删除所有相关实体“Cotizacion” .The级联删除只有当我加载失败在上下文中列出Cotizaciones,但是当我不在上下文中加载Cotizaciones列表时,级联删除可以正常工作。
我收到以下错误:
{"Cannot add or update a child row: a foreign key constraint fails (\"pruebaentity\".\"cotizacion\", CONSTRAINT \"FK_Cotizacion_Cliente_ClienteId\" FOREIGN KEY (\"ClienteId\") REFERENCES \"cliente\" (\"ClienteId\") ON DELETE CASCADE ON UPDATE CASCADE)"}