2016-06-28 6 views
1

So, nach diesem Beispiel (https://msdn.microsoft.com/en-us/data/jj193542) konnte ich die Entity-Klassen und DbContext-Klasse manuell eingeben, um eine neue Datenbank von Grund auf neu zu erstellen.Code First - Wie programmiere ich DbContext und Entities?

Das ist alles gut und gut, aber ich muss den DbContext und die Entities (von einer Assembly, die die Metadaten bereitstellt) programmgesteuert nicht manuell eingeben. Ich brauche dann die Datenbank in SQL während der Kompilierung oder Laufzeit erstellt werden, nicht wenn ein Datensatz programmgesteuert hinzugefügt wird (wie das Beispiel in der obigen Verknüpfung demonstriert).

Ist dies mit der Code-First-Methode möglich?

+0

Also, mit T4-Vorlagen konnte ich meine Assembly aufnehmen und generieren die DbContext und Entity-Klassen. Das Problem ist, ich muss noch den DbContext programmatisch öffnen, eine neue leere Entität erstellen und sie hinzufügen, dann db.SaveChanges() aufrufen, damit die Datenbank und die Tabellen in SQL erstellt werden !! Es muss eine andere Möglichkeit geben, die Datenbank zu erstellen !! Jemand? – jjf1978

+1

Database.Initialize würde die Datenbank erstellen. https://msdn.microsoft.com/en-us/library/system.data.entity.database.initialize(v=vs.113).aspx –

+0

Das tat es, danke Sir. – jjf1978

Antwort

0

Dies ist jetzt gelöst. Um den DbContext und Entities zu generieren, habe ich T4-Templates verwendet (mehr zu T4-Templates siehe: https://msdn.microsoft.com/en-us/data/gg558520.aspx) und dann einfach Database.Initialize (false) aufrufen, um die Datenbank zu erzwingen, wenn die Anwendung (in diesem Fall Konsolenanwendung) ausgeführt wird.

 using (var db = new MyContext()) 
     { 
      db.Database.Initialize(false); 
     } 
Verwandte Themen