WPF / EF / SQLite未找到服务器或无法访问服务器

时间:2016-01-24 00:22:33

标签: c# wpf entity-framework visual-studio sqlite

我一直把头发拉了好几个小时。我是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实例不存在。

我真的不知道如何解决这个问题。这真是令人沮丧!

编辑:我用一个教程来回答这个问题,以便正确配置所有内容。

1 个答案:

答案 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=&quot;W:\visual studio projects\AccountHelper\AccountHelper\Data\AccountHelper.sqlite3&quot;'" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

7)你很高兴。

您可以在this link上看到项目源代码。检查第一次提交中的代码,它包含您需要的所有内容。其他提交是项目特定的。