Problem beim Zuordnen von Fragmenten in Entity Framework

8

Ich benutze Entity Framework und ich lief in einen ungeraden Build-Fehler.

Ich baue ein Forum und ich lege eine Tabelle in der Datenbank für "ignoriert" auf, wenn Leute sich nicht mögen, werden sie jemanden ignorieren. Die Tabelle hat zwei Spalten und zusammen sind sie die Primärschlüssel.

%Vor%

Wenn EF diese Tabelle abbildet, erhalte ich diesen Fehler:

Fehler 7 Fehler 3034: Problem bei der Zuordnung von Fragmenten ab Zeile 1467, 1477: Zwei Entitäten mit möglicherweise unterschiedlichen Schlüsseln werden derselben Zeile zugeordnet. Stellen Sie sicher, dass diese beiden Zuordnungsfragmente beide Enden von AssociationSet den entsprechenden Spalten zuordnen.

Ich öffnete die edmx im XML-Editor und navigierte zu den problematischen Zeilen.

%Vor%

Ich fange gerade mit EF an und ich verstehe nicht, was los ist oder was das Problem sein könnte.

Jede Hilfe ist willkommen.

BEARBEITEN Die Beziehungen zwischen Ignorern, bei denen Fremdschlüssel sowohl den initiierenden Benutzer als auch den ignorierten Benutzer zuordnen, werden dem Primärschlüssel (Benutzername) der Benutzertabelle zugeordnet. So war es, als ich zum ersten Mal EF dieser Tabelle zugeordnet habe. Ich habe seitdem die FKs gelöscht, um zu sehen, ob das helfen würde, aber es nicht.

    
Chev 27.01.2011, 20:40
quelle

2 Antworten

5

Ich weiß nicht, was hier falsch war, aber ich habe nur die Tabelle aus dem ORM gelöscht und die DB hat sie dann mit einer tatsächlichen ID-Spalte anstelle von zwei Primärschlüsseln neu erstellt. Ich habe die Tabelle neu gemappt, kompiliert, und jetzt ist alles in Ordnung. Es wäre bequem gewesen, es so zu machen, wie ich es hatte, aber naja.

Wenn jemand irgendwelche Einblicke hat, lass es mich wissen. Ich würde lieber die Antwort eines anderen akzeptieren.

    
Chev 27.01.2011, 21:02
quelle
23

Dies liegt wahrscheinlich daran, dass Sie in Ihrem Entitätsmodell eine Viele-zu-Viele-Join-Tabelle einschließen oder eine solche Tabelle für EF hält (möglicherweise eine solche, die keinen eigenen Schlüssel, sondern deren Identität hat) besteht aus zwei oder mehr Fremdschlüsseln).

Nehmen wir zum Beispiel an, Sie haben die folgenden Tabellen:

  • Person
  • Adresse
  • PersonAddress (enthält nur PersonID und AddressID)

In Ihrem Entitätsmodell sollten Sie nur Person und Adresse hinzufügen. Wenn Sie PersonAddress hinzufügen, löst EF den Fehler aus. Laut diesem MSDN Q & A , EF berücksichtigt die Join-Tabelle automatisch.

    
Shauna 07.03.2013 17:05
quelle