Évitez le fichier App.config dans le projet lorsque vous utilisez SQLite / SubSonic (ou toute autre base de données)

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

Question

J'ai un projet que je développe avec SQLite et SubSonic 3. Je veux savoir comment éviter le fichier App.config. Comment puis-je dire à mon programme d'utiliser le fournisseur de données SQLite. Je veux dire, comment puis-je le dire:

<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>

puis-je aussi ajouter une chaîne de connexion par le code:

<add name="xyz" connectionString="Data Source=xyz.db" providerName="System.Data.SQLite"/>
Était-ce utile?

La solution

Vous pouvez créer un fournisseur manuellement en transmettant la chaîne de connexion:

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

Ensuite, vous pouvez utiliser ce fournisseur lorsque vous en avez besoin. Ceci est idéal pour IoC où vous pouvez configurer une règle pour IDataProvider de SubSonic:

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

Je dois aimer IoC:)

Autres conseils

De nombreuses bibliothèques utilisent le fichier app.config. Par conséquent, vous en aurez tôt ou tard besoin. C'est très central pour l'ensemble de la plate-forme .NET. Et quel est selon vous le problème?

Vous pouvez facilement fournir votre propre chaîne de connexion , mais je ne suis pas sûr de charger un fournisseur ADO.NET spécifique dans le code .

Cela dépend de la façon dont vous utilisez votre fournisseur SQLite, mais si ses classes sont codées en dur dans votre code, je ne pense pas que vous ayez même besoin d'un outil DbProviderFactory.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top