One-to-One-Mapping-Probleme beim Entity Framework

entity-framework

Frage

Verwenden von VS 2010 Beta 2, ASP.NET MVC.

Ich habe versucht, eine Entity-Framework-Datei zu erstellen, und erhielt die Daten aus meiner Datenbank.

Es gab einige Probleme mit den Beziehungen, also fing ich an, die Dinge zu optimieren, aber ich bekam immer den folgenden Fehler für einfache Eins-zu-Eins-Beziehungen

Fehler 1 Fehler 113: Multiplizität ist in der Rolle 'UserProfile' in der Beziehung 'FK_UserProfiles_Users' nicht gültig. Da die Eigenschaften der abhängigen Rolle nicht die Haupteigenschaften sind, muss die Obergrenze der Multiplizität der abhängigen Rolle * sein. myEntities.edmx 2024

Die Tabelle "Meine Benutzer" besteht aus einigen weiteren Viele-zu-Viele-Beziehungen zu anderen Tabellen. Wenn ich jedoch versuche, eine Eins-zu-Eins-Beziehung zu anderen Tabellen herzustellen, wird der Fehler angezeigt.

Benutzer-Tabelle

  • Benutzeridentifikation
  • Nutzername
  • Email

usw..

UserProfiles-Tabelle

  • UserProfileID
  • UserID (FK für Benutzer-Tabelle)
  • Ort
  • Geburtstag

Akzeptierte Antwort

Für Eins-zu-Eins-Beziehungen erwartet EF, dass die Tabellen denselben Primärschlüssel verwenden. Und wirklich, wenn es ein echtes Einzelgespräch ist, sollten sie es wahrscheinlich tun . Wenn Sie also in Ihrem Beispiel UserID zum Primärschlüssel in der UserProfiles-Tabelle machen, funktioniert Ihr Eins-zu-Eins-Vorgang.


Beliebte Antwort

Ich habe ein ähnliches Problem, aber mit einem Verkaufs- und Verkaufsszenario.

Ein Verkauf kann ohne Verkauf existieren, und ein Verkauf kann ohne Verkauf bestehen. Das heißt, ich habe eine 0 oder 1 zu 0 oder 1 Beziehung.

Layby referenziert den Verkauf, aber Layby kann nicht den Primärschlüssel von Sale verwenden, und Verkauf kann nicht den Primärschlüssel von Layby verwenden.

Ich löste das Problem, indem ich eine 0 oder 1 zu vielen Beziehungen verwendete, konfigurierte den 'Laybys'-Getter und den Setter für den Verkauf als privat und stellte dann meinen eigenen' Layby'-Getter und Setter in meinem POCO bereit.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum