0

Zunächst bin ich wirklich neu in der Entwicklung mit C#, ASPNET und MS SQL, also vielleicht fehlt mir hier einfach ein einfacher Punkt oder missverstanden ein grundlegendes Konzept, also bitte haben Sie Geduld mit Ich :)Aspnet Entity Data Model funktioniert nicht wie erwartet

Ich benutze Visual Studio Web Developer 2010 Express mit .NET Framework 4 und MVC2 (müssen diese spezielle Version verwenden). Ich habe auch SQL Management Studio 10.5, wo ich eine einfache Tabelle erstellt enter image description here

Jetzt habe ich dies als eine Einheit Modell verwenden möchten, so dass ich ein in Visual Studio erstellt und hinzugefügt alle Tabellen (einschließlich der ASPNET User Tables) und Stored Procedures. ... enter image description here

Das Problem ist das Ergebnis

enter image description here

ich voraussichtlich in der Lage sein, von Kunden (createdBy, modifiedBy) an den ASPNET User Table zu navigieren, wie ich "Geschenk" aus dem Zugriff auf "Kunden" -Tabelle. Ich dachte, ich hätte hier eine einzige Immobilie und nicht zwei aus dem gleichen Grund. Natürlich könnte ich nur die Navigationseigenschaften umbenennen, aber ich möchte wissen, was die Ursache dafür ist und was ist der richtige Weg, um in diesem Fall aspnetusers zu verwenden?

+1

Ihre Erwartung ist falsch. EF erstellt für jede Fremdschlüsselreferenz eine eindeutige Navigationseigenschaft. Eine dieser Eigenschaften ist das Mapping für den Benutzerdatensatz, der den Kunden-Datensatz erstellt hat, und das andere ist die Zuordnung für den Benutzerdatensatz des letzten Benutzers, der es modifiziert hat. –

+0

Ich würde auch dringend empfehlen, auf die [Community Edition] (https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx) zu aktualisieren, da das, was Sie verwenden, nicht ist unterstützt an dieser Stelle. –

+0

@TiesonT. Die Eigenschaft Navigation wird also nicht für das gleiche Objekt in der SQL-Tabelle erstellt, sondern für das Objekt, mit dem es verknüpft ist. –

Antwort

1

Kunden hat 2 FK-Referenzen auf die aspnet_Users Tabelle. Einer entspricht der createdBy Spalte und der andere entspricht der Spalte modifiedBy. Folglich wird für jede eine Navigationseigenschaft erzeugt. Stellen Sie sich vor, dass verschiedene Benutzer eine einzige Kunden erstellt und geändert haben.

Wenn nur eine einzige Verknüpfung generiert wurde, welcher Benutzer erwartet die aspnet_Users Assoziation? Wenn Sie eine Sammlung von beiden erwarten, wie würden Sie dann zwischen beiden unterscheiden?