2011-06-24 2 views
2

Bonjour tout le monde à nouveau,Entity Framework 4.1 relation biunivoque annulable

je besoin d'aide dans cette logique pour EF 4.1 J'ai une table avec des données pour un client. J'ai aussi une autre table avec un sondage que je dois compiler en cas de besoin. Donc, au départ, je pourrais insérer un nouveau client et après quelques jours, je remplirai le formulaire d'enquête. La relation DOIT alors être un à un et facultative (simplement parce que cette enquête n'a jamais pu être compilée pour un client).

J'ai creusé dans quelques exemples en ligne mais je suis vraiment bloqué.

Merci d'avance.

+0

Est-ce que cela signifie que l'enquête peut exister sans client? Que voulez-vous dire par optionnel? –

+0

Je suis désolé je n'étais pas clair. Le client peut exister sans surprise. Cela doit être une relation un à un où l'enquête peut être facultative. Merci – Valerio

+0

J'ai oublié de mentionner que l'intégrité référentielle doit y figurer – Valerio

Répondre

4

Il suffit de définir vos entités comme:

public class Customer 
{ 
    public int Id { get; set; } 
    ... 
    public virtual Survey Survey { get; set; } 
} 

public class Survey 
{ 
    [Key, ForeignKey("Customer")] 
    public int Id { get; set; } 
    public virtual Customer Customer { get; set; } 
} 

Si vous n'aimez pas les annotations de données les enlever et placer cela en OnModelCreating dans votre contexte:

modelBuilder.Entity<Customer>() 
      .HasOptional(c => c.Survey) 
      .WithRequired(s => s.Customer); 
+0

Ou vous pouvez créer une classe de mappage distincte qui hérite de EntityTypeConfiguration

+0

Enfin, vous avez passé à la mise à niveau de 4.0 CTP5 à 4.2 ... heures passées à rechercher un changement dans un 1 à 0..1 relation ... le .WithRequired (s => s.Customer) a changé – JCii

Questions connexes