Ändern Sie Verbindungszeichenfolge in EF6 basierend auf Provider von Config

c# entity-framework-6 orm

Frage

Ich bin von EF5 zu EntityFramework 6 gewechselt.

Jetzt habe ich ein Problem, ich möchte die Verbindungszeichenfolge basierend auf dem Provider in app.Config ändern. Bedeutung Wenn es SqlServerCe ist, muss ich den DatabaseFile.sdf-Dateinamen ändern, um eine Datenbank zu ändern. Wenn es SqlServer ist, muss ich InitialCataloge ändern.

Ich habe das getan, indem ich die Art von

'Database.DefaultConnectionFactory', aber dies ist in EF6 veraltet.

Wie kann ich die Verbindungszeichenfolge basierend auf dem Provider ändern?

Ich kann dies nicht mit dem DbConfiguration Attribut tun, da ich die Verbindungszeichenfolge jedes Mal ändern muss.

Akzeptierte Antwort

Sie können verwenden

DbConfiguration.SetConfiguration(new YourDbConfiguration());

Sie können also Ihre Konfiguration verwenden, ohne ein Attribut zu verwenden.

Aber wenn ich benutze

public CeDbConfiguration()
{
 SetDefaultConnectionFactory(new SqlCeConnectionFactory(SqlCeProviderServices.ProviderInvariantName,
                                                        @"c:\test",
                                                        @"c:\test\db.sdf"));
SetProviderServices(SqlCeProviderServices.ProviderInvariantName,
                    SqlCeProviderServices.Instance);
}

Um eine SQL CE Factory zu konfigurieren, wird der Pfad 'C: \ test' ignoriert und ich muss auch Database.DefaultConnectionFactory setzen !!



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum