Wie man einen String als Primärschlüssel im Entity Framework erstellt!

entity-framework

Frage

Ich habe eine ältere Tabelle, die den Namen und die ID des Mitarbeiters enthält. Jetzt ist die Mitarbeiter-ID in char, weil sie Werte enthalten kann, die mit einem Alphabet beginnen. Die Mitarbeiter-ID ist das einzige eindeutige Feld, das in der Tabelle verfügbar ist.

Jetzt verwende ich eine Ansicht, um die Daten aus der Tabelle zu erfassen (sie befindet sich in einer separaten Datenbank). Mein Entity-Framework weigert sich jedoch, die Ansicht aufgrund des Mangels an int-Primärschlüssel zu identifizieren.

Jede Lösung wäre sehr dankbar, da ich den alten Tisch nicht berühren kann.

Akzeptierte Antwort

Mein Entity-Framework weigert sich jedoch, die Ansicht aufgrund des Mangels an int-Primärschlüssel zu identifizieren.

Ich bezweifle das. Die EF unterstützt Strings als PKs.

Aber Ansichten können natürlich keine PKs haben. Das bedeutet, dass Sie bei der Verwendung der EF zusätzliche Arbeit tun müssen, insbesondere wenn Sie sie aktualisierbar machen. So geht's


Beliebte Antwort

Erstellen Sie eine weitere Spalte, die ein int ist, und verwenden Sie diese als Primärschlüssel. Die Geschäftsbenutzer müssen diesen Schlüssel nicht kennen.

Meine Vermutung ist, dass die Endanwendung eine Mitarbeiter-ID mit Chartern verwendet. Wie erstes und letztes Erst-Plus-Mietdatum, so etwas wie DB012210.

Wie die Tabelle intern ausgeführt wird, spielt für die aufrufende Anwendung keine Rolle. Sie können ein anderes Feld als echten Primärschlüssel hinzufügen, der ein int ist. Setzen Sie dann einfach eine eindeutige Einschränkung für die aktuelle EmployeeId, verwenden Sie sie jedoch nicht wirklich als Primärschlüssel.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum