2009-09-02 2 views
6

Ich erhalte einen Fehler 3007, wenn ich mein Entitätsmodell zu meiner Lösung hinzufüge.Fehler 3007 beim Hinzufügen meines Entitätsmodells

fand ich diese Links:

Good explination

Short answer

über diesen Fehler:

Error 1 Error 3007: Problem in Mapping Fragments starting at lines 89, 94: Non-Primary-Key column(s) [Person_ID] are being mapped in both fragments to different conceptual side properties - data inconsistency is possible because the corresponding conceptual side properties can be independently modified.

Ihre Antwort: ich mit ihrem Schluss einig, dass, indem einfach die Scalar Löschen Property Person_ID und belasse die Navigationseigenschaft my Problem ist behoben. Dies ist jedoch nicht sehr skalierbar, da ich meine Datenbank dynamisch erstelle und meine Entität sehr oft aktualisiert wird. Ich möchte nicht jedes Mal, wenn ich es aktualisiere, meine Entität aufräumen und aufräumen.

Meine Frage: Gibt es eine Möglichkeit, den Fehler zu beheben, indem Sie die Art korrigieren, wie EF die Entität erstellt? Oder gibt es eine Möglichkeit, die Scalar-Eigenschaft durch Code zu entfernen? Vielleicht gibt es sogar ein paar Optionen, die ich übersehen habe.

Antwort

0

Meine Erfahrung mit EF v1 ist ähnlich wie bei Ihnen. Wenn das EDM falsch generiert wird und Sie das Problem nicht umgehen können, müssen Sie das EDM manuell bearbeiten. EF v.Next (Entity Framework v4, glaube ich) wird "Code Only" Entity Data Models unterstützen, und der EDM Designer soll viel besser sein. Die eine oder andere Verbesserung sollte unser Leben erleichtern. Bis dahin ...

5

Versuchen Sie, ausländische Immobilien Spalte von Entity zu entfernen Satz Entitätsmodell Design verwendet, wird es Ihr Problem

Zum Beispiel lösen

Wir haben zwei Tabellen ist Kunde und andere ist Order, mit Entity-Modell-Design haben wir Assoziation zwischen Kunden und Bestellungen hinzugefügt, wenn wir dies Ado.net Entity Framework ich Navigationseigenschaften zu beiden unteren Tabellen hinzufügen.

Wie Customer.Orders - Hier ist, um die Liste Order.Customer

One - Viel Beziehung.

Also brauchen wir Eigentum entfernen mit dem Namen CustomerId [Fremdschlüsselspalte] von Auftrag Entitätssatz.

Zum Vergleich:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/