3

Ich versuche die Model First Ansatz in Entity Framework mit VS2010/.Net 4.0 eingeführt, und jetzt weiß ich nicht wirklich, wie dies zu tun ist. Beginne ich mit den folgenden Instanzen:Wie verwende ich Navigationseigenschaften als Primärschlüssel im Entity Framework (.Net 4.0)?

Contact       Event 
*******       ***** 
Id (Int32, not null, pk)   Id (Int32, not null, pk) 
Name (Name, not null)    Name (String, not null) 
Address (Address, not null)  Duration (Duration, not null) 
Email (String) 
Phone (String) 

wo Name, Address und Duration sind komplexe Typen, die ich definiert.

Jetzt möchte ich eine RSVP Entity hinzuzufügen, die Contacts-Events als many-to-many-Mapping funktioniert, aber hält auch einige zusätzliche Informationen in einem komplexen Typ I Payment genannt. Die Tabelle würde wahrscheinlich so etwas wie folgt aussehen:

RSVP 
**** 
ContactId (int, not null, pk) 
EventId (int, not null, pk) 
Payment_Date (datetime, not null) 
Payment_Amount (double, not null) 

Sie versuchen, wann diese Entität im Modell-Designer zu konstruieren, ich will die ContactId und EventId Felder hinzufügen, indem viele-zu-viele-Beziehungen zu den jeweiligen Tabellen, aber Wenn ich dies tue, kann ich die beiden Felder nicht als Primärschlüssel der Tabelle (oder des Entitätsschlüssels der Entität) auswählen.

Wie mache ich das?

+0

Entschuldigen Sie bitte dieses Problem, aber hat niemand eine Ahnung? Jede Lösung/Workaround-Vorschläge sind mehr als willkommen! =) –

Antwort

0

Ich denke, es komplizierter wird als eine einfache many-to-many-Beziehung zwischen den beiden Einheiten, wenn Sie die zusätzlichen Datenpunkte zu der Verknüpfungstabelle hinzuzufügen. Sobald die Verknüpfung eigene Daten besitzt, kann sie nicht mehr zu einer reinen Navigationseigenschaft abstrahiert werden.

+0

Nicht, was ich hören wollte, aber ich landete * via * RSVP in beide Richtungen. –

0

Eigentlich denke ich, dass Sie keine separate Entität für RSVP erstellen müssen, nur eine Viele-zu-viele-Beziehung zwischen den beiden Entitäten.

Lassen Sie mich wissen, ob das hilft ..

Verwandte Themen