2011-05-19 59 views
2

我試圖拿起ASP.Net - 並按照MVC教程:http://www.asp.net/mvc/tutorials/mvc-music-store-part-4(注:我完全新的.NET框架,C#和ASP.Net)ASP.Net SQL的ConnectionStrings配置

在開始使用教程建議使用的SQL Server Compact 4.0 - 但是,我安裝了SQL Server Express的,而不是(因爲我將在後面使用它,不只是爲教程)

SELECT @@VERSION AS [Version] 

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 <X64> (Build 7600:) (WOW64)

現在,當我談到要點時,我遇到了麻煩爲本教程設置數據庫連接。本教程的步驟把它添加到Web.config:

<connectionStrings> 
    <add name="MusicStoreEntities" 
     connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf" 
     providerName="System.Data.SqlServerCe.4.0"/> 
</connectionStrings> 

但是,這並不工作 - 很肯定這是因爲我使用了不同的SQL Server。如何使這項工作的建議?

我試圖改變的providerName爲「System.Data.SqlClient的」,它仍然不工作,我嘗試了以下太:

<connectionStrings> 
    <add 
     name="MusicStoreEntities" 
     connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|MvcMusicStore.sdf" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

它仍然不工作,以下情況例外:提供程序沒有返回ProviderManifestToken字符串

幫助設置此ASP.Net - SQL Server Express 2008將不勝感激!


編輯

好像現在我懂了工作,至少要連接到數據庫:

現在,很明顯該數據庫是空的 - 教程didnt甚至說實例化數據庫,除了下載數據庫「SampeData.cs」的一些資產文件,並將其添加到Global.asax.cs Application_Start方法:

System.Data.Entity.Database.SetInitializer(new MvcMusicStore.Models.SampleData()); 

而現在,兩件事情:

  1. 中的Application_Start上面的線似乎沒有被擊中在調試模式下(我也嘗試重建溶液)

  2. 現在我正在以下錯誤:由於數據庫不包含模型元數據,因此無法檢查模型兼容性。確保IncludeMetadataConvention已被添加到DbModelBuilder約定中。

我覺得我缺少在數據庫實例中的數據 - 但不知道如何/什麼 - 教程犯規多說

回答

2

我假設您已將數據庫的副本恢復到SqlExpress。一旦你這樣做,你應該添加一個數據庫元素到該字符串中,並將其恢復爲數據庫的名稱。爲的ConnectionStrings一個有用的資源是http://www.connectionstrings.com

<connectionStrings> 
    <add 
     name="MusicStoreEntities" 
     connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;Database=MusicStoreEntities" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

注意,你所擁有的是一個.sdf文件,這是一個SQLCE數據庫的鏈接。 | DataDirectory |部分將替換爲您應用程序中App_Data文件夾的位置。

+0

跟着你設置的配置,我仍然得到相同的「供應商沒有返回一個ProviderManifestToken字符串」 - 這個錯誤意味着什麼? – 2011-05-19 15:19:37

+0

我不確定那個錯誤是什麼。似乎可能與實體框架有關。你可以嘗試'集成安全性=真'而不是SSPI。 – NerdFury 2011-05-19 15:26:24

+0

編輯我原來的帖子 - 看起來像現在我連接到db – 2011-05-19 15:30:13

1

這是我用:

<add name="<CONNECTION NAME>" 
    connectionString="Data Source=<SERVER NAME>;Initial Catalog=<DATABASE>;Persist Security Info=True;User ID=<USER ID>;Password=<PASSWORD>;" 
    providerName="System.Data.SqlClient" /> 

更換< ...>值與您的相應值。

0

我永遠不會記得連接字符串,我use this site找出他們需要的。