我一直把头发拉了好几个小时。我是C#et .NET的新手,所以如果这是微不足道的话我会道歉。
我试图将WPF与Entity framework + SQLite一起使用。
我已经设法通过手动连接到SQLite数据库:
var connection = ConfigurationManager.ConnectionStrings["AccountHelper.Properties.Settings.AccountHelperConnectionString"].ConnectionString;
m_dbConnection = new SQLiteConnection(connection);
executeReader();
我收到以下错误:
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。 指定的LocalDB实例不存在。
我真的不知道如何解决这个问题。这真是令人沮丧!
编辑:我用一个教程来回答这个问题,以便正确配置所有内容。
答案 0 :(得分:0)
所以为了回答我上面的直接问题,问题是TextContext不知道连接字符串。因此,如果您将Context的名称与字符串值相同,则会删除此错误消息。
那说,配置完全错误。我设法让它工作。因为我经常挣扎,所以我将分享我所做的工作。
逐步指导配置
配置WPF项目以使用Entity Framework(ADO.NET)和SQLite
如果您之前尝试过其他方法,那么配置它可能非常棘手,甚至更多。因此,我建议您完全卸载可能已安装的任何SQLite软件。
1)根据您的visual studio版本,安装sqlite-netFx45-setup-bundle-x86-2012-1.0.93.0.exe或同等版本。您可以在sqlite.org找到它。几点:
我知道1.0.98.0和1.0.99.0不能与visual studio 2012一起使用。它可以工作,但是在项目中创建ADO.NET项时会出现问题。
在此网页上,您找不到旧版本,您必须手动修改网址才能获得所需版本。
在此网页上,请确保选择具有“这是唯一能够安装Visual Studio 2013的设计时组件的安装程序包”的版本。“Visual Studio 2013是否。
安装exe并确保在安装过程中勾选设计器相关组件。
2)创建一个新的WPF项目。同样,如果您使用已修改的项目,则可能存在一些配置问题。你最好开始一个新项目,做一下配置,一旦你知道如何做,就把它移植到你的项目中。
3)通过块管理器安装实体框架。
4)手动添加(不与NUGGET MANAGER !!!)以下参考文献,您可以在Assemblies中找到 - >扩展:
System.Data.SQLite Core
System.Data.SQLite Designer
System.Data.SQLite for Entity Framework
LINQ的System.Data.SQLite
5)向该项目添加新项目 - >数据 - > ADO.NET blabla。根据需要命名并创建。您需要为它创建一个连接。如果您没有兼容的SQLite版本,则无法创建SQLite连接。
6)然后确保您的App.config如下所示,您可能需要更改提供程序:
<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.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description="Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="AccountHelperEntities" connectionString="metadata=res://*/AccountHelperModel.csdl|res://*/AccountHelperModel.ssdl|res://*/AccountHelperModel.msl;provider=System.Data.SQLite;provider connection string='data source="W:\visual studio projects\AccountHelper\AccountHelper\Data\AccountHelper.sqlite3"'" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
7)你很高兴。
您可以在this link上看到项目源代码。检查第一次提交中的代码,它包含您需要的所有内容。其他提交是项目特定的。