EF6 调用SQLite(适用于code first,非code first参考官方配置文件)

来源:互联网 发布:linux mplayer 分辨率 编辑:程序博客网 时间:2024/05/17 03:51
<!--这里必须注册System.Data.SQLite,否则找不到,除非加入GAC,DbConfiguration配置也需要-->
  <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"/>
      <remove invariant="System.Data.SQLite.EF6"/>
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".Net Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6"/>
    </DbProviderFactories>

  </system.data>

<connectionStrings>
    <add name="northwindEFEntities" connectionString="data source=.\northwindEF.db" providerName="System.Data.SQLite"/>
  </connectionStrings>


<entityFramework>
    <providers>
      <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6"/>
    </providers>
  </entityFramework>

因为用到了EF,所以这里的entityFramework配置里面的invariantName与connectionStrings里面的providerName都要对应为DbProviderFactories里面注册的名字invariant="System.Data.SQLite",否则会提示没有注册System.Data.SQLite。

并且 <DbProviderFactories>节必须有,否则当目标计算机没有GAC注册System.Data.SQLite,会提示找不到。。。


0 1
原创粉丝点击