SQL Server Express的MVC6连接字符串

时间:2015-12-17 00:57:13

标签: sql-server json asp.net-mvc asp.net-core-mvc

我使用MVC5实体框架很长一段时间,web.config中的连接字符串如下所示:

<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!"
    }

3 个答案:

答案 0 :(得分:2)

我建议你的config.json使用不同的结构,就像这样(注意“连接声明中的ConnectionString元素”)

已编辑以向代码添加格式

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

答案 1 :(得分:1)

您的两个连接字符串不相等:MVC 6包含“Trusted_Connection = True”但仍希望使用“sa”作为用户的连接字符串。您必须在Windows和SQL身份验证之间进行选择。请参阅Choose an Authentication Mode并相应地更新您的连接字符串。

答案 2 :(得分: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中定义此内容(但我认为这可能是可配置的)。