" Ado.Net实体数据模型"模板与VS2010,EF6和SQLite EF6提供商?

时间:2014-08-02 09:46:43

标签: .net-4.0 entity-framework-6 system.data.sqlite ado.net-entity-data-model

当我为未来的项目指定XP兼容性时,我试图测试VS 2010(WinXP SP3),。Net 4.0.3(后来的WPF for UI),Entity Framework 6(我发现它的组合)应与.Net 4)和SQLite(System.Data.SQLite / .EF6)兼容。

我从NuGet安装了“EntityFramework”和“System.Data.SQLite EF6”软件包。 (“System.Data.SQLite EF6”又安装了System.Data.SQLite,System.Data.SQLite.EF6和SQLite.Interop.dll)

现在尝试使用“Ado.Net实体数据模型”模板,我从旧教程中猜到这将是下一步我进入新的连接对话框,并且没有列出那里的SQLite提供程序来选择。

我检查了我的App.config,并在那里列出了SQLite数据提供程序。 (如果说得对,我说不清楚) 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" 
             type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
             requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0.3,Profile=Client" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="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" />
      <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>

应用程序(空控制台应用程序)编译时没有错误并运行(当然没有任何操作)。

我对EF + SQLite非常环保,所以请你指点一下吗? 我完全走错了路吗?

1 个答案:

答案 0 :(得分:0)

所以经过几个小时的绝望谷歌搜索,我在一个关于Visual Studio Design Time Component(s)的旧教程中找到了一个提示。
显然我错过了GAC中安装的Design Time Components和System.Data.SQLite库,没有它们,VS2010向导就不会看到&#39;&#39; SQLite提供者。
因此,尽管在许多官方场所阅读安装程序安装包是推荐的将SQLite库添加到项目中的方法,但它实际上是制作VS的唯一方式(2010, 12,?13?)工具可以使用它。

安装了&#34; 设置包中的一个&#34;来自http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki。在我的情况下&#34; 32位Windows的安装程序(.NET Framework 4.0)&#34; 模板现在提供SQLite作为数据提供者。