Ist es möglich, zuerst die Datenbank zu mischen und die ersten Modelle mit dem Entity-Framework zu codieren?

8

Ich bin dabei, eine Webanwendung zu starten, in der ich das Entitätsframework mit (meist) ersten Codemodellen verwenden möchte.

Zusätzlich zu den anwendungsspezifischen Modellen, die ich erstellen möchte, muss ich jedoch eine externe Benutzerdatenbank verwenden. Ist es möglich, eines meiner Modelle zuerst als Datenbank anzugeben und einen separaten Datenbankkontext zu verwenden?

    
drewwyatt 10.07.2014, 15:34
quelle

1 Antwort

18

Technisch ist es möglich, aber ich würde es nicht empfehlen. Es ist viel besser, nur Code-First auf der ganzen Linie zu verwenden. Ja, ironischerweise können Sie "Code-First" mit einer vorhandenen Datenbank verwenden.

Erstellen Sie einfach POCOs, die mit den Tabellen in Ihrer vorhandenen Datenbank übereinstimmen. Wenn Ihr POCO nicht wie Ihre Tabelle benannt ist (nicht alle Tabellennamen wären gültig oder entsprechende Klassennamen), können Sie das Table -Attribut verwenden, um EF explizit mitzuteilen, mit welcher Tabelle Ihr POCO arbeitet:

%Vor%

Dann benötigen Sie einen separaten Kontext speziell für diese vorhandene Datenbank und alle zugehörigen Entitäten. Alles, was Sie tun müssen, ist 1) zu sagen, welche Verbindungszeichenfolge es verwenden soll und 2) die Datenbankinitialisierung zu deaktivieren, damit EF nicht versucht, die Datenbank tatsächlich zu erstellen.

%Vor%

Und das ist es. Wann immer Sie mit einer Entität aus dieser vorhandenen Datenbank arbeiten müssen, öffnen Sie einfach diesen Kontext oder rufen Sie einen anderen Weg auf, z. B. über einen DI-Container (Abhängigkeitsinjektion), und wechseln Sie in die Stadt.

    
Chris Pratt 10.07.2014, 16:14
quelle