Ausschluss des EF-Datenmodells aufgrund fehlenden Primärschlüssels
Bei der Integration einer vorhandenen Datenbank in Entity Framework (EF) 4.0 kommt es häufig vor, dass in einigen Tabellen Primärschlüssel fehlen. Dieses Problem tritt beim Erstellen eines neuen Entitätsdatenmodells auf, was zu einer Fehlermeldung führt, dass der Primärschlüssel fehlt und die Tabelle anschließend ausgeschlossen wird.
Es wird allgemein angenommen, dass der betroffenen Tabelle ein physischer Primärschlüssel hinzugefügt werden muss, um dieses Problem zu beheben. Es gibt jedoch eine Problemumgehung, die es Ihnen ermöglicht, diese Tabellen zu verwenden, ohne ihr Schema zu ändern.
Wie Tillito vorgeschlagen hat, besteht diese Problemumgehung darin, die SELECT-Anweisung für die fehlerhafte Ansicht in einer neuen SELECT-Anweisung zu ändern. Indem Sie die ursprüngliche SELECT-Anweisung auf diese Weise umschließen, können Sie die ISNULL-Funktion verwenden, um die Spalte anzugeben, die als Primärschlüssel verwendet werden soll. Stattdessen können Sie die NULLIF-Funktion verwenden, um zu verhindern, dass eine Spalte als Primärschlüssel festgelegt wird.
Beispiel:
Betrachten Sie das folgende Beispiel:
<code class="language-sql">SELECT ISNULL(MyPrimaryID,-999) MyPrimaryID, NULLIF(AnotherProperty,'') AnotherProperty FROM ( ... ) AS temp</code>
In diesem Beispiel zwingt die ISNULL-Funktion EF dazu, „MyPrimaryID“ als Primärschlüssel zu erkennen, während die NULLIF-Funktion sicherstellt, dass „AnotherProperty“ nicht als Primärschlüssel betrachtet wird.
Durch die Anwendung dieser Technik vermeiden Sie die Notwendigkeit, das Datenbankschema zu ändern und vorhandene Tabellen nahtlos in Ihr EF-Datenmodell zu integrieren, sodass Datenmanipulation ohne Änderungen an physischen Primärschlüsseln möglich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich EF 4.0-Datenmodelle ohne physische Primärschlüssel integrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!