Ich möchte Startzeit in EF6 reduzieren, indem Sie das DbCompiledModel auf Datenträger zwischenspeichern.EF6-Code zuerst: Wie DbCompiledModel aus EDMX-Datei beim Start laden?
Es ist einfach, die EDMX-Datei für eine DbContext zu schreiben:
EdmxWriter.WriteEdmx(myDbContext, XmlWriter.Create(@"C:\temp\blah.xml"))
Und es ist einfach, eine DbCompiledModel zum DbContext weitergeben müssen:
var db = new DbContext(connectionString, myDbCompiledModel)
scheint es jedoch keine Möglichkeit zu sein, um die EDMX-Datei von der Festplatte in ein DbCompiledModel zu lesen! Wie kann ich das machen?
Hinweis, dass ich erfolgreich die Lösung mit dem EdmxReader Werkzeug in diesem implementiert verzweigte Version von EF6:
https://github.com/davidroth/entityframework/tree/DbModelStore
Allerdings ist ich nur ungern eine Filiale Version in einer Produktionsumgebung zu verwenden. Ich habe versucht, das EdmxReader-Dienstprogramm aus diesem Zweig zu extrahieren, aber es beruht auf einem internen Konstruktor von DbCompiledModel, auf den ich nicht zugreifen kann.
Also, wie kann ich die EDMX-Datei von der Festplatte erhalten und in ein DbCompiledModel konvertieren?
Brendan, Mikael war nett genug, um die Idee zu testen, die ich dir per E-Mail geschickt habe, nachdem ich es mit ihm geteilt habe. Lassen Sie uns wissen, ob dies der Fall ist! –
Mikael, danke für die Antwort auf diese Frage. Ich habe versucht, das DbCompiledModel mit BinaryFormatter und JSON.Net mit verschiedenen Einstellungen zu serialisieren, aber lief auf selbstreferenzierende und non [Serializable] Probleme. Ich habe eine separate Frage mit den Details hier begonnen. Kannst du Licht abstrahlen und kannst du es überhaupt serialisieren? http://stackoverflow.com/questions/32109897/how-can-i-serialize-a-dbcompiledmodel-from-ef6 –