Digamos que tengo estas dos entidades muy básicas:Código EF4.1 Primero: Cómo deshabilitar supresión en cascada para una relación sin propiedad de navegación en la entidad dependiente
public class ParentEntity
{
public int Id;
public virtual ICollection<ChildEntity> Childrens;
}
public class ChildEntity
{
public int Id;
public int ParentEntityId; // Foreign Key
public virtual ParentEntity parent; // [NOTWANTED]
}
Por alguna razón, no quiero que la ChildEntity para mantener una referencia de regreso a su padre. Solo quiero que mantenga la identificación de ParentEntity, pero nada más. Hasta ahora, no hay problema, simplemente borré la línea [NOTWANTED], y todo funciona como se esperaba.
Mi problema aquí es: ¿cómo desactivar la eliminación de cascada en ese caso específico?
Si todavía tenía la propiedad de navegación de los padres sería tan fácil como:
modelBuilder.Entity<ChildEntity>()
.HasRequired(c => c.parent)
.WithMany(p => p.Childrens)
.WillCascadeOndelete(false)
Sin embargo, sin la propiedad de navegación no tengo ni idea de cómo puedo lograr desactivar la cascada de borrado (sin desactivar globalmente por supuesto, ni por mesa, pero solo por la relación).
Lo que he hecho en este momento es la creación de la clave externa como int anulable, con el fin de desactivar la cascada de borrar, pero eso no es bastante:
public int? ParentEntityId; // Foreign Key - nullable just to disable cascade on delete
¿Cómo puedo conseguir que funcione con ¿API fluido? Piensa que debería ser posible.
necesita .hasOne (ParentEntity) – Saeid