MVC Scaffolding und EF 'One To Zero oder One' Beziehungen Fehler

9

In meinem AspNet MVC 3 Projekt, wenn ich versuche, eine Entity zu scaften, die eine One to Zero oder One Beziehung zu einer anderen Entität hat, bekomme ich "Ein Item mit demselben Index wurde bereits hinzugefügt" -Fehler .

Dies geschieht im Wesentlichen, wenn der Primärschlüssel der verknüpften Tabelle ebenfalls ein Fremdschlüssel ist.

Im Moment ist mein Workaround

  1. Fügen Sie der zugehörigen Tabelle eine ID-Spalte hinzu und machen Sie sie zum Primärschlüssel

  2. Fügen Sie der Fremdschlüsselspalte einen eindeutigen Schlüssel hinzu.

Das Problem dabei ist, dass EF eine ICollection-Navigationseigenschaft für die verknüpfte Entität anstatt nur einer Eigenschaft des zugehörigen Entitätstyps generiert (die ich im Fall von nullbezogenen Entitäten auf null setzen kann)

Ist das ein bekannter Fehler?

Mache ich etwas falsch?

Gibt es eine bessere Lösung, um die ICollection-Navigationseigenschaft zu entfernen?

    
NVM 15.02.2012, 10:21
quelle

2 Antworten

3

Siehe meine Antwort zu dieser Frage:

Wie kodiere ich eine optionale Eins-zu-Eins-Beziehung in EF 4.1-Code zuerst mit Lazy Loading und demselben Primärschlüssel in beiden Tabellen?

Das ist der Beispielcode mit der richtigen Konfiguration.

%Vor%

Sie können dies auch mit DataAnnotations erreichen, aber ich bevorzuge es, meine Entitätsmodelle als POCOs zu behalten.

>     
WDRust 25.02.2012, 08:22
quelle
1

Versuchen Sie, das Attribut [Key] für den beabsichtigten Primärschlüssel zu verwenden. Möglicherweise müssen Sie den Namespace System.ComponentModel.DataAnnotations

importieren

Überprüfen Sie auch die Dokumentation über die vollständige Implementierung dieses Namensraums.

Ссылка

    
Danny G 24.02.2012 17:53
quelle