c# - 与 SQLite/SubSonic(或任何其他数据库)一起使用时,避免在项目中使用 App.config 文件

标签 c# database sqlite subsonic3 configuration-files

我有一个正在使用 SQLite 和 SubSonic 3 开发的项目。我想知道如何完全避免 App.config 文件。如何告诉我的程序使用 SQLite 数据提供程序。我的意思是,我该如何告诉它:

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

我还可以通过代码添加连接字符串吗:

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

最佳答案

您可以通过传入连接字符串来手动创建提供者:

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

然后您可以在需要时使用该提供程序。这是 IoC 的理想选择,您可以在其中为 SubSonic 的 IDataProvider 设置规则:

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

爱上 IoC :)

关于c# - 与 SQLite/SubSonic(或任何其他数据库)一起使用时,避免在项目中使用 App.config 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631556/

相关文章:

c# - 将 Webforms 项目与 Composite C1 集成

python - 使用 web2py DAL.define_table() 初始化数据库表的正确方法

java - Android - 在 TableLayout 中显示 SQLite 数据库记录

sqlite - 在哪里可以找到旧 SQLite 版本的源存档?

数据库中所有列表的mongodb总长度

android - 了解 SQLite 游标行为

c# - 跟随游戏对象并同时更改相机 View

c# - PowerBI 和 Azure AD headless 登录

c# - Unity 中的回合制网络

php - 如果用户也使用 php 选择了用户名,则在 MySQL 表列中输入用户名