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

发布于 2024-08-09 00:31:07 字数 525 浏览 6 评论 0原文

我有一个正在使用 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"/>

I have a project which I am developing with SQLite and SubSonic 3. I want to know that how can I avoid the App.config file altogether. How do I tell my program to use SQLite Data provider. I mean, how can I tell it this:

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

also can I add a connection string by code:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尴尬癌患者 2024-08-16 00:31:07

许多库都依赖于 app.config,因此您迟早会需要它。它对于整个 .NET 平台非常核心。您认为问题是什么?

您可以轻松地提供自己的连接字符串,但我不太确定是否在代码中加载特定的ADO.NET 提供程序

这取决于您如何使用 SQLite 提供程序,但如果它的类被硬编码到您的代码中,那么我认为您甚至不需要 DbProviderFactory。

A lot of libraries rely on the app.config, so you sooner or later are going to need it anyway. It is very central to the whole .NET platform. And what do you see as the problem?

You can easily provide your own connection string but I'm not so sure about loading a specific ADO.NET provider in code.

It depends on how you use your SQLite provider, but if it's classes are hardcoded into your code then I don't think you even need a DbProviderFactory.

您可以通过传入连接字符串来手动创建一个 Provider:

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

然后您可以在需要时使用该 Provider。这对于 IoC 来说是理想的选择,您可以在其中为 SubSonic 的 IDataProvider 设置规则:

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

Gotta love IoC :)

You can create a Provider manually by passing the connection string in:

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

Then you can use that Provider when you need to. This is ideal for IoC where you can setup a rule for SubSonic's IDataProvider:

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

Gotta love IoC :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文