Ich habe zwei DbContexte erstellt, einer ist für die Anwendungskonfiguration, der zweite ist für die Protokollierung.Mehrere DbContext, mehrere Database.SetInitializer
Der Grund ist, möchte ich eine maximale Größe auf der Logging-Datenbank festlegen, so dass es nicht alle freien Speicherplatz belegt und andere Datenbanken zu verhindern.
In meiner global.asax.cs Datei, habe ich folgendes:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Database.SetInitializer<AdminContext>(new AdminInitialiser());
Database.SetInitializer<LoggingContext>(new LoggingInitialiser());
}
Die InitializeDatabase Methode in LoggingInitialiser wird nicht aufgerufen werden. Liegt das daran, dass nur ein Initialisierer gesetzt werden kann? Gibt es eine Möglichkeit, Initialisierer für zwei DbContexte zu haben?
Besteht nicht die Gefahr, dass dies mehrfach aufgerufen wird? Ich vermute, dass die Initialisierung teuer ist, selbst wenn keine Änderungen vorgenommen werden. Wie wäre es, wenn Sie es in einen statischen Konstruktor einfügen, was bedeutet, dass es nur einmal aufgerufen wird? – Holf