我使用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!"
}
答案 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
中定义此内容(但我认为这可能是可配置的)。