Ich verwende derzeit eine SQL Server-Datenbank und muss sie mit ASP.Net mithilfe von Entity Framework verbinden. Ich habe derzeit keine Fremdschlüssel in meiner Datenbank, kann ich weiterhin die Datenbank scaffolden und LINQ-Abfragen mit Befehlen wie .Include()
ausführen?So rüsten Sie eine SQL Server-Datenbank mit ASP.Net Entity Framework
Das aktuelle Problem, das mir begegnet, ist mein Datenbankmodell speichert historische Daten, so dass ich mehrere Tabellen mit zusammengesetzten Primärschlüsseln habe. Ohne diese Eins-zu-eins-Beziehung in der Datenbank kann ich keine Abfragen in Bezug auf Beziehungen wie die .Include()
-Methode ausführen.
So sind meine Fragen wie folgt:
Muss ich Fremdschlüssel in der SQL Server-Datenbank, um wie
.Include()
Funktionen zu nutzen umfassen müssen?Ich lese online, dass der einfachste Weg, eine FK Relation zwischen einem primären zusammengesetzten Schlüssel und einer einzelnen PK in einer SQL Server Datenbank einzuschließen, dummy Spalten in den Tabellen zu erstellen, um den zusammengesetzten Primärschlüssel zu beziehen Tabellen Fremdschlüssel. Gibt es eine bessere Möglichkeit, eine FK-Beziehung außerhalb der Erstellung von Dummy-Spalten oder der Umstrukturierung der Daten zu erstellen?
Unten ist ein Beispiel dafür, wie die zusammengesetzten Primärschlüssel zu einzelnen Primärschlüssel aussieht:
ID*| CODE* | YEAR* | SEQ*| DATA
01 | ABCD | 2015 | 01 | 23
01 | ABCD | 2016 | 01 | 24
02 | ABCD | 2016 | 01 | 21
CODE* | DESC
ABCD | AlphabetSoup
- = primary der Tabelle Schlüssel
Die abhängige Entität FK muss auf die Principal Entity PK zeigen. In Ihrem Beispiel ist die Tabelle mit der zusammengesetzten PK die abhängige Tabelle, sodass es kein Problem gibt, 'Table1.CODE' als FK-Verknüpfung mit' Table2 einzurichten.CODE'. Die Assoziation wäre viele (Tabelle 1) zu eins (Tabelle 2). –