2015-12-17 271 views
1

我用MVC5實體框架很長一段時間,連接字符串中web.config MVC6連接字符串看起來像這樣:SQL Server Express的

<connectionStrings> 
    <add name="GuestContext" 
     connectionString="Data Source=DAVESQLSERVER\SQLEXPRESS;Initial Catalog=NexDec12;Integrated Security=False;User ID=sa;Password=changeME!;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

我試圖找出如何在appsettings.json做到這一點文件。我正在使用Rick Anderson的教程here來學習MVC6。

而不是使用VS或IIS10中內置的SQL Server我想連接到我的外部SQL Server Express。我已經嘗試過,但它不起作用,說登錄對用戶sa無效(所以它試圖使用正確的用戶名?)我覺得它不是使用正確的密碼,但我不知道如何構造一個新的MVC6 json配置格式的連接字符串。

我嘗試這樣做:

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Server=DAVESQLSERVER\\SQLEXPRESS;Database=MovieTut;Trusted_Connection=True;MultipleActiveResultSets=true; Integrated Security=false;User ID=sa;Password=changeME!" 
    } 
+0

問題是我hadn(通知「的ConnectionString在兩個連接聲明元素)

我以前用MVC5 EF6,我從來沒有使用遷移,除非我要改變我的模式,看起來MVC6 EF7你必須初始化遷移 – dave317

回答

0

我認爲這個問題是您選擇「名」的JSON版本的連接字符串的方式。

嘗試值"ConnectionString"更改爲"GuestContext"

"Data": { 
    "DefaultConnection": { 
     "GuestContext": "Server=DAVESQLSERVER\\SQLEXPRESS;Database=MovieTut;Trusted_Connection=True;MultipleActiveResultSets=true; Integrated Security=false;User ID=sa;Password=changeME!" 
    } 

而且,我希望這在config.json而非appsettings.json定義(但我認爲這是可配置的)。

+0

我不這麼認爲,因爲我的應用程序正在調用在Startup.cs文件中的默認連接,所以我覺得如果我輸入我的連接字符串到默認連接它應該工作...會看到並嘗試你建議的替代方法。 – dave317

+0

你的'startup.cs'是否有配置數據庫上下文的步驟?如果是這樣,它是用來檢索連接字符串的完整「關鍵」。這部分可能看起來像這樣:'configuration.Get(「Data:DefaultConnection:ConnectionString」)'(匹配你的帖子中的json)。 –

1

您的兩個連接字符串不相等:對於MVC 6包含「Trusted_Connection = True」但仍希望使用「sa」作爲用戶的字符串。您必須在Windows和SQL認證之間進行選擇。請參閱Choose an Authentication Mode並相應地更新您的連接字符串。

2

我會推薦不同的結構,以你的config.json,像這樣編輯以格式添加到代碼

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Server=.;Database=MyDb;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 
"EmployeeContext": { 
     "ConnectionString": "Server=.;Database=Manish_Database;Trusted_Connection=True;MultipleActiveResultSets=true" 
    } 
}