Допустим, у меня есть эти два очень основные сущности:EF4.1 Code First: Как отключить удаление каскада для отношений без навигации собственности в зависимой сущности
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]
}
По некоторым причинам, я не хочу, ChildEntity, чтобы вернуть ссылку на родителя. Я просто хочу, чтобы он сохранил идентификатор ParentEntity, но не более того. До сих пор никаких проблем, я просто удаляю строку [NOTWANTED], и все работает так, как ожидалось.
Моя проблема здесь: как отключить каскадное удаление в этом конкретном случае?
Если бы я все еще был родительский навигационный свойство было бы так же легко, как:
modelBuilder.Entity<ChildEntity>()
.HasRequired(c => c.parent)
.WithMany(p => p.Childrens)
.WillCascadeOndelete(false)
Однако без свойства навигации я понятия не имею, как я могу добиться, чтобы отключить каскад на удаление (без отключения его глобально конечно, ни за столом, а только для отношения).
То, что я сделал прямо сейчас, чтобы установить внешний ключ в качестве обнуляемого междунар для того, чтобы отключить каскад на удаление, но это не очень:
public int? ParentEntityId; // Foreign Key - nullable just to disable cascade on delete
Как я могу заставить его работать с свободный API? Думайте, что это должно быть возможно.
вам нужно .hasOne (ParentEntity) – Saeid