Cascade de la Suppression de la Règle en EF 4.1 le Premier Code lors de l'utilisation Partagée de la Clé Primaire de l'Association

J'ai mis en place une bidirectionnel 1:1 la relation en fonction de cette réponse:

Primaire /Clé Étrangère dans le Cadre de l'Entité

- Je définir le bidirectionnel de la relation de cette façon:

public class Student
{   
    public virtual int StudentId { get; set; }
    public virtual Anamnesis Anamnesis { get; set; }

    . . .
}

public class Anamnesis
{
    [Key, ForeignKey("Student")]
    public int AnamnesisId { get; set; }

    public virtual Student Student { get; set; }

    . . .
}

où, l'Étudiant est le principal organisme et de l'Anamnèse, il l'entité à des actions de la PK.

Maintenant, je voudrais que la relation avait créé une Supprimer la Règle = CASCADE. En réalité, la relation qui est créé a la Suppression de la Règle = PAS d'ACTION comme on le voit dans l'image ci-dessous:

Cascade de la Suppression de la Règle en EF 4.1 le Premier Code lors de l'utilisation Partagée de la Clé Primaire de l'Association

Si je supprimer manuellement cette relation à l'intérieur de la fenêtre Propriétés du Tableau et ajouter d'autres en relation avec la Suppression de la Règle = CASCADE, le code fonctionne comme je m'attends à me permettant de supprimer un Étudiant et il a partagé la Anamnèse qui a le même ID.

Donc, voici ma question:

Est-il un moyen de l'utilisation des Données d'Annotation (pas d'API Fluent) dans ma classe alors que je reçois un Rapport avec la CASCADE de la suppression de la règle? Je préfère le à l'aide de Données d'Annotation, mais si il n'est pas possible, je serais heureux avec certaines API Fluent code qui fait ce travail.

NOTE

J'ai essayé de l'API Fluent code qui est indiqué dans ce post. Il ne fonctionne pas dans mon cas où j'ai bidirectionnel propriétés.

... Uhmmm... maintenant que j'ai posté la question, je vois que j'ai oublié le virtual mot-clé pour le AnamnesisId de la propriété pour se conformer à Ladislav la réponse ci-dessus. C'est peut-être le problème. Je dois retester une fois de plus. 😀
Pouvez-vous montrer le code complet? EF code utilise d'abord le supprimer en cascade par défaut chaque fois que cela est possible et mes deux exemples liés à la question de l'utiliser ainsi.
testé à nouveau et de vérifier le rapport créé dans la base de données. Il reste le même. Pas de CASCADE. Ainsi, le mot-clé virtuel n'est pas le problème. Le code qui définit la relation est celle que je montre ci-dessus. Avez-vous besoin de quelque chose de plus?
Pouvez-vous tester cette contre complète de SQL server?
J'aimerais le tester, mais @Morteza a montré comment mettre en œuvre cette aide Couramment le code de l'API. Merci quand même pour votre aide.

OriginalL'auteur Leniel Maccaferri | 2011-04-28