我非常密切地关注如何将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都出现了这个问题:
我讨厌被困在一个像这样的小事情的项目中,谁知道如何解决这个问题?
答案 0 :(得分:2)
今天早上我遇到了这个问题(我正在关注您在原始问题中引用的博客文章),我发现了问题,以及如何解决它:
只在您的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" />
现在SQLLite将显示在ADO.NET实体数据模型连接区域中
您可能需要添加第二个&#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的标准连接。