2016-01-24 59 views
0

我一直在這拉我的頭髮好幾個小時。我是C#et .NET的新手,所以我很抱歉,如果這是微不足道的。WPF/EF/SQLite服務器未找到或無法訪問

我想用實體框架+ SQLite使用WPF。

我設法通過手動執行連接到SQLite數據庫:

var connection = ConfigurationManager.ConnectionStrings["AccountHelper.Properties.Settings.AccountHelperConnectionString"].ConnectionString; 
m_dbConnection = new SQLiteConnection(connection); 
executeReader(); 

我得到以下錯誤:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.

我真的有關於如何解決這個問題毫無頭緒。這真是令人沮喪!

編輯:我回答了這個教程來正確配置一切。

回答

0

所以要回答我上面的直接問題,問題是TextContext不知道連接字符串。所以如果你的字符串值與你的上下文同名,它會刪除這個錯誤信息。

也就是說,配置是完全錯誤的。我設法讓它工作。因爲我掙扎了很多,我會分享我所做的工作。

一步一步的指導,它配置一個WPF項目

配置與實體框架(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的項目,當你得到一個問題。

  • 在這個網頁上,你不能找到舊版本,你將不得不手動修改URL來獲取你想要的版本。

  • 在此網頁上,請確保選擇「這是唯一能夠安裝Visual Studio 2013設計時組件的安裝程序包」的版本。「Visual Studio 2013」​​。

  • 安裝exe文件,並確保在安裝過程中打勾設計器相關的組件。

2)創建一個新的WPF項目。同樣,如果你使用了一個你已經修改的項目,你可能會遇到一些配置問題。你最好開始一個新項目,做好配置,一旦你知道如何去做,將它移植到你的項目中。

3)通過塊體管理器安裝實體框架。

4)手動(不加與熔核MANAGER !!!)以下引用,你可以在組件找到 - >擴展:

  • System.Data.SQLite核心

  • 系統.Data.SQLite設計師

  • System.Data.SQLite的實體框架

  • System.Data.SQLite用於LIN Q

5)在這個項目中添加一個新項目 - > Data - > 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上看到項目源代碼。檢查第一次提交中的代碼,它包含您需要的所有內容。其他提交項目是特定的。

相關問題