37

我在Visual Web Developer 2010 Express中工作,並使用實體框架代碼優先CTP。我能夠用新的SQL Server CE做到這一點,但我無法找到連接字符串來與SQL Server Express一起工作。Entity Framework的SQL Server Express連接字符串代碼優先

這一個,使用SQL Server CE測試版,工作正常(數據庫創建並在模型更改時重新創建)。

<add name="TrempimModel" 
    connectionString="data source=|DataDirectory|TrempimModel.sdf" 
    providerName="System.Data.SqlServerCe.4.0" /> 

這一項,這是我從aspnetdb連接字符串複製,

<add name="TrempimModel" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; 
    AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 

給出關於啓動以下消息:

無法完成操作。提供的SqlConnection沒有指定初始目錄

那麼如何使它與SQL Server Express一起工作呢?

回答

59

與您的連接字符串這裏的問題是:

<add name="TrempimModel" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; 
         AttachDBFilename=|DataDirectory|aspnetdb.sdf; 
         User Instance=true" 
    providerName="System.Data.SqlClient" /> 

你基本上界定什麼「服務器」要連接 - 但你不連接到哪個數據庫裏面的文件至。 此外 - SQL Server Express數據庫文件的文件擴展名是 .mdf(而不是 .sdf - 即SQL Server精簡版) - 您也需要考慮這一點! 是打字錯誤,根據OP的評論)。

您需要定義一個額外的database=....(或Initial Catalog=.....)在連接字符串中:

<add name="TrempimModel" 
    connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI; 
         database=YourDatabaseName; 
         AttachDBFilename=|DataDirectory|aspnetdb.mdf; 
         User Instance=true" 
    providerName="System.Data.SqlClient" /> 

然後,它應該工作得很好。

如需更多背景材料及大量樣品,請參考ConnectionStrings網站。

+0

a)sdf擴展名是一個錯字。我在連接字符串中使用了mdf - 編輯了問題以反映這一點。指定數據庫的建議解決了我的問題 - 謝謝。我正在使用與文件名相同的名稱 - 是正確的還是會導致一些問題? – GilShalit 2010-11-07 10:14:50

+0

@GilShalit:它取決於你的MDF裏的數據庫真的叫什麼;很可能與文件名稱相同。您必須通過將MDF附加到完整的SQL Server實例並查看真正調用MDF內存儲的數據庫來驗證這一點。 – 2010-11-07 10:27:01

+0

因爲你似乎對此知道很多,我不假設你有時間可以看看我的問題......我可以讓連接字符串工作,但如果我嘗試編輯/使用數據庫,我得到這麼多的錯誤:( - http://stackoverflow.com/questions/5924553/entity-framework-error-connecting-to-sql-server-express-after-mounting-connecting並重新發布到MSDN - http: //social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/1ec3ff63-d8a1-4844-942d-c2c05ed8078e – Wil 2011-05-10 12:42:23

相關問題