我使用DbProviderFactories在我的数据层(基于Entity框架)和我使用sqlite我的数据库,但我不必有一个App.Config有以下代码:
<configuration> <system.data> <DbProviderFactories> <remove invariant="System.Data.sqlite"/> <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> </system.data> </configuration>@H_404_2@相反,我想让我的数据层以编程方式。任何人都知道一种方法来做到这一点?
编辑:
这样做的原因是,我使用IoC容器来选择数据层,并且我的一些数据层不需要App.Config值,或者使它们与数据层硬绑定。
以下可能会造成太阳黑子和推翻西方文明。它甚至可能导致关于管道磁带编程的争论(使它停止!),但它工作(现在)
try { var dataSet = ConfigurationManager.GetSection("system.data") as System.Data.DataSet; dataSet.Tables[0].Rows.Add("sqlite Data Provider",".Net Framework Data Provider for sqlite","System.Data.sqlite","System.Data.sqlite.sqliteFactory,System.Data.sqlite"); } catch (System.Data.ConstraintException) { }@H_404_2@