Problem in mapping-Fragmente in Entity Framework
Bin ich mit entity framework und ich lief in eine seltsame build-Fehler.
Baue ich ein forum und ich habe eine Tabelle in der Datenbank für "ignoriert", wenn die Menschen nicht wie jeder andere ignorieren Sie jemand. Die Tabelle hat zwei Spalten und zusammen sind Sie die Primärschlüssel.
PK InitiatingUser
PK IgnoredUser
Wenn die EF-maps in dieser Tabelle bekomme ich diesen Fehler:
Fehler 7 Fehler 3034: Problem bei der Zuordnung der Fragmente ab-Linien 1467, 1477:Zwei Personen mit möglicherweise unterschiedlichen Tasten zugeordnet sind, die gleiche Zeile. Sicherzustellen, dass diese beiden mapping-Fragmente ordnen beiden enden der AssociationSet den entsprechenden Spalten.
Öffnete ich die edmx in den xml-editor und navigiert zu den fehlerhaften Zeilen.
<MappingFragment StoreEntitySet="Ignores">
<ScalarProperty Name="IgnoredUser" ColumnName="IgnoredUser" />
<ScalarProperty Name="InitiatingUser" ColumnName="InitiatingUser" />
</MappingFragment>
Ich bin gerade erst angefangen mit EF und ich verstehe nicht, was Los ist oder was das Problem sein könnte.
Jede Hilfe ist willkommen.
BEARBEITEN
Die Beziehungen zwischen ignoriert verwendet, um Fremdschlüssel-mapping sowohl initiierende Benutzer und Nutzer nicht auf den primary key (username) der Benutzer-Tabelle. Das war, wie es war, als ich das erste zugeordnete EF zu dieser Tabelle. Habe ich gelöscht, da die FKs zu sehen, ob das helfen würde, aber das ist es nicht.
- Was machen die Beziehungen in der DB Aussehen?
- Siehe mein edit für die Beziehungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist wahrscheinlich auch eine viele-zu-viele join-Tabellen in Ihrer entity-Modell, oder was EF denkt, ist solch eine Tabelle (möglicherweise wie einer, der nicht über seine eigene Selbstversorger-Schlüssel, aber deren Identität, die aus zwei oder mehr Fremdschlüssel).
So, zum Beispiel, sagen wir, Sie haben den folgenden Tabellen:
In Ihre entity-Modell, sollten Sie nur hinzufügen, Person und Adresse. Wenn Sie hinzufügen PersonAddress, dann EF wirft den Fehler. Nach in diesem MSDN-Q&A, EF wird die join-Tabelle berücksichtigt automatisch.
Ich weiß nicht, was war hier falsch, aber ich habe gerade gelöscht, die Tabelle aus der ORM und die DB dann neu erstellt, es mit einem tatsächlichen ID-Spalte statt zwei primäre Tasten. Ich re-Mapping-Tabelle, zusammengestellt, und alles ist gut jetzt. Es wäre praktisch gewesen, es zu tun die Weise, die ich es hatte, aber naja.
Wenn jemand keine Einsicht, lasst es mich wissen. Ich würde eher annehmen, jemand anderes beantworten.
PK InitiatingUser;
PK IgnoredUser
zwei Primärschlüssel können nicht zulassen, dass edmx-Datei.so erstellen sno Spalte in dieser Tabelle, und stellen Sie diesen als Primärschlüssel . entfernen Sie die pk von InitiatingUser und IgnoredUser.
jetzt in der sich zwei Spalte es ist kein Primärschlüssel vorhanden.
wie
Pk sno;
FK InitiatingUser;
FK IgnoredUser