Vermeiden Sie App.config-Datei in Projekt, wenn es mit SQLite / SubSonic (oder eine beliebige andere Datenbank) unter Verwendung von

StackOverflow https://stackoverflow.com/questions/1631556

Frage

Ich habe ein Projekt, das ich mit SQLite und SubSonic 3. Ich möchte wissen, entwickle, dass, wie kann ich die Datei App.config ganz zu vermeiden. Wie erkläre ich mein Programm SQLite Data Provider zu verwenden. Ich meine, wie kann ich es sagen soll:

<DbProviderFactories>
    <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite">
</DbProviderFactories>

kann ich auch eine Verbindungszeichenfolge von Code hinzufügen:

<add name="xyz" connectionString="Data Source=xyz.db" providerName="System.Data.SQLite"/>
War es hilfreich?

Lösung

Sie können einen Provider manuell erstellen, indem Sie die Verbindungszeichenkette in:

var p = ProviderFactory.GetProvider("connectionstring", "System.Data.SqlClient");

Dann können Sie diese Provider verwenden, wenn Sie benötigen. Dies ist ideal für IoC, wo Sie Setup eine Regel für SubSonic des IDataProvider kann:

ForRequestedType< IDataProvider >()
    .TheDefault.Is.ConstructedBy(x => 
        ProviderFactory.GetProvider("connectionstring", "System.Data.SqlClient"));

Gotta love IoC:)

Andere Tipps

Viele Bibliotheken setzen auf die app.config, so dass Sie früher oder später werden es auf jeden Fall brauchen. Es ist sehr zentral für die gesamte .NET-Plattform. Und was sehen Sie das Problem?

Sie können Ihre eigene Verbindungszeichenfolge leicht zur Verfügung stellen, aber ich bin nicht so sicher über einen bestimmten ADO.NET-Provider in Code Laden .

Es hängt davon ab, wie Sie Ihre SQLite-Provider verwenden, aber wenn es Klassen in Ihrem Code fest einprogrammiert werden dann glaube ich nicht Sie sogar einen DbProviderFactory benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top