Ich habe Datenbank-Tabellen, die wie folgt aussehen:Entity Framework Cardinality Ausgabe auf einem 0 ... 1 Verband
A Task
kann auf eine Module
abgebildet werden, oder nicht (0 abgebildet. ..1). Ich benutze zuerst die Entity Framework-Datenbank und wenn ich das Modell aus der Datenbank generiert habe, hat die Task-Entität Module als eine Sammlung (0 oder mehr) durchlaufen. Also habe ich mein EDMX geöffnet und die Navigationseigenschaft "Module" auf Task auf 0 ... 1 geändert.
Nun, wenn ich zu kompilieren versuchen, bekomme ich diesen Fehler:
Error 3003: Problem in mapping fragments starting at line 1241:Given the cardinality of Association End Member Task, it should be mapped to key columns of the table TaskModule. Either fix the mapping or change the multiplicity of this end.
Ich verstehe nicht, was ich tun müssen, um dieses Problem zu beheben. Ich habe die Verknüpfungsdetails überprüft und kann das Problem nicht sehen. Ich weiß, dass ich wahrscheinlich etwas Dummes verpasse, aber ich stecke total fest. Verband Eigenschaften:
Visual Studio 2010 SP1, Entity Framework 4.3.1.0, SQL Server 2008 R2.
Es hat keinen Sinn, eine TaskModule-Tabelle zu haben. ModuleName sollte in Aufgabe –
@ Raphaël Althaus ein Nullwert-Fremdschlüssel sein. Es scheint mir, dass dies eine philosophische Antwort ist (d. H. Die 3. NF verletzt, aber fraglich ist, ob Sie sollten oder nicht). Kannst du mich auf Material hinweisen, das deinen POV unterstützt? Werfen Sie einen Blick auf http://stackoverflow.com/questions/1723808/nullable-foreign-key-bad-practice – Dean
Das ist eine gute Frage, die Sie verknüpft, Dean. Ich glaube, ich bin in der Minderheit, vielleicht bin ich Oldschool, aber die NULL-fähigen Fremdschlüssel verziehen mich wirklich in die falsche Richtung. Ich habe die TaskModule-Tabelle wie vorgeschlagen geändert und alles funktioniert jetzt einwandfrei. –