获取SQLite以使用VS2013数据模型设计器

时间:2015-02-20 00:04:49

标签: entity-framework sqlite visual-studio-2013 sql-server-ce sql-server-ce-toolbox

我非常密切地关注如何将SQLite与Visual Studio 2013连接起来this great tutorial,但是当我进入本教程的实体数据模型向导部分时,我无法看到我的SQLite连接或者SQLite提供程序,只有SQL Server的选项。

我非常仔细地阅读了本教程,我甚至尝试安装SQL Server Compact / SQLite Toolbox,将项目编译为x86,安装Entity Framework Visual Studio工具,但仍然没有任何反应。

我的packages.config看起来像:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="CommonServiceLocator" version="1.2" targetFramework="net45" />
  <package id="EntityFramework" version="6.1.2" targetFramework="net45" />
  <package id="NodaTime" version="1.3.0" targetFramework="net45" />
  <package id="Prism" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Composition" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Interactivity" version="5.0.0" targetFramework="net45" />
  <package id="Prism.Mvvm" version="1.0.0" targetFramework="net45" />
  <package id="Prism.PubSubEvents" version="1.0.0" targetFramework="net45" />
  <package id="System.Data.SQLite.Core" version="1.0.94.0" targetFramework="net45" />
  <package id="System.Data.SQLite.EF6" version="1.0.94.0" targetFramework="net45" />
</packages>

对此有何建议?


编辑1:

我有点转向SQL Server CE 4.0,即使它已被弃用。我宁愿SQLite缺乏4Gb限制,但我无法使其工作,而且我读过EF并没有顺利地集成在它上面。

但是现在我遇到了一个新问题,SQL Server CE 4和MySQL都出现了这个问题:

Error for EF 6.1.2

我讨厌被困在一个像这样的小事情的项目中,谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

今天早上我遇到了这个问题(我正在关注您在原始问题中引用的博客文章),我发现了问题,以及如何解决它:

  1. 卸载SqlLite EF6的nuget包
  2. 从app.config
  3. 中删除system.data条目
  4. 安装nuget包
  5. 只在您的app.config

    中添加两个删除和一个添加
    <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" />
    

  6. 现在SQLLite将显示在ADO.NET实体数据模型连接区域中

  7. 您可能需要添加第二个&#34;添加&#34;回到system.data,它在运行时工作,因为我还没到那么远。

答案 1 :(得分:0)

您是否只拥有GAC中安装的1.0.94 SQLite VS Tools?

答案 2 :(得分:0)

我的项目是使用SQL Server CE 4.0,而不是SQLite。

我在同一个解决方案下有两个项目(一个用于程序本身,另一个用作测试项目),显然它们之间存在冲突。我从两个项目中删除了来自nuget等的所有EF和SQLCE4引用,并且只将它们添加回我的程序项目,当它正在运行时,我将它添加到测试项目中。我能够让实体数据模型向导工作,显然一切都很好,但到目前为止我还没有完成任何EF操作。

我真的很忙于另一个项目所以我没有太多时间来完全测试它,做一些CRUD操作甚至在SQLite上尝试。我使用新的解决方案进行了快速测试,显然SQLite和SQLSeverCE4正在工作,当添加到控制台应用程序时,我添加了它们并生成实体数据模型向导,如教程指出的那样。但是在我的项目中,我目前无法测试SQLite的时间限制。当我有更多时间时,我想给你们一个更完整的答案但是现在,这就是我可以测试的全部。

答案 3 :(得分:0)

我也遵循了教程,在评论中也检查了所有内容。 我的系统缺少什么(Visual Studio 2015,Entitiy Framework 6.1.3和sqlite 1.0.103作为nuget包是在App.config中添加以下行&#34; entityFramework / Providers&#34;  (我在标准之后添加它:provider invariantName =&#34; System.Data.SqlClient&#34; type =&#34; System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer&#34;)

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

之后,服务器资源管理器中已经包含的sqlite连接(已经有效)是Entity Framework的标准连接。