Powiedzmy mam te dwa bardzo podstawowe podmioty:EF4.1 Kod pierwsze: Jak wyłączyć usuwania kaskadę na związek bez własności w jednostce zależnej nawigacji
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]
}
z jakichś powodów, nie chcą, ChildEntity do przechowywania odniesienia do swojego rodzica. Chcę tylko zachować identyfikator ParentEntity, ale nic więcej. Do tej pory nie ma problemu, po prostu kasuję linię [NOTWANTED] i wszystko działa zgodnie z oczekiwaniami.
Mój problem tutaj: jak wyłączyć usuwanie kaskadowe w tym konkretnym przypadku?
Gdybym jeszcze miał właściwość rodzic nawigacyjnego byłoby tak proste, jak:
modelBuilder.Entity<ChildEntity>()
.HasRequired(c => c.parent)
.WithMany(p => p.Childrens)
.WillCascadeOndelete(false)
jednakże bez właściwości nawigacji nie mam pojęcia, w jaki sposób można to osiągnąć, aby wyłączyć kaskadę Delete (bez wyłączania go globalnie oczywiście, ani według tabeli, ale tylko dla relacji).
Co mam zrobić w tej chwili jest, aby ustawić klucz obcy jako wartości pustych int, w celu wyłączenia kaskadę Delete, ale nie całkiem:
public int? ParentEntityId; // Foreign Key - nullable just to disable cascade on delete
Jak mogę zmusić go do pracy z płynne API? Pomyśl, że to powinno być możliwe.
trzeba .hasOne (ParentEntity) – Saeid