EF4.1 le Premier Code : Comment faire pour désactiver delete cascade pour une relation sans système de navigation de la propriété dépendante de l'entité

Disons que j'ai ces deux entités de base:

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]
}

Pour certaines raisons, je ne veux pas le ChildEntity de tenir une référence de retour à son parent. J'ai juste envie de garder le ParentEntity id, mais rien de plus.
Jusqu'à présent, aucun problème, je viens de supprimer le [NOTWANTED] de la ligne, et tout fonctionne comme prévu.

Mon problème, c'est: comment faire pour désactiver le supprimer en cascade dans ce cas précis?

Si j'avais encore le parent propriété de navigation, il serait aussi facile que de:

modelBuilder.Entity<ChildEntity>()
    .HasRequired(c => c.parent)
    .WithMany(p => p.Childrens)
    .WillCascadeOndelete(false)

Sans toutefois la propriété de navigation, je n'ai aucune idée de comment je peux réaliser pour désactiver la cascade on delete (sans le désactiver à l'échelle mondiale, bien sûr, ni par table, mais juste pour la relation).

Ce que j'ai fait pour le moment est l'ensemble de la clé étrangère comme un nullable int, afin de désactiver la cascade on delete, mais ce n'est pas assez:

public int? ParentEntityId; //Foreign Key - nullable just to disable cascade on delete

Comment puis-je obtenir de travailler avec API fluent? Pense qu'il doit être possible.

  • vous avez besoin d' .hasOne(ParentEntity)
InformationsquelleAutor darkey | 2012-02-03