此操作需要连接到“主”数据库

时间:2013-11-14 12:03:30

标签: entity-framework

我突然在应用程序中遇到错误。

错误是:

  

此操作需要连接到“master”数据库。无法   因为原始数据库创建了与'master'数据库的连接   数据库连接已打开,凭据已被删除   来自连接字符串。提供未打开的连接。

代码中没有任何变化 - 数据库访问在其余代码中都很好。

它停在这一行:

var filteredContacts = dc.EAContactLists.Where(o => teams.Contains(o.Team)).ToList();

我迷失了这个。

9 个答案:

答案 0 :(得分:36)

尝试在连接字符串中设置Persist Security Info = True

希望这有帮助。

答案 1 :(得分:8)

我有这个问题,在我的情况下通过在连接字符串中添加“Integrated Security = True”来解决它。这仅适用于使用Windows身份验证连接到数据库的情况。希望它有所帮助。

答案 2 :(得分:6)

这个错误发生在我身上,以上都没有。令人尴尬的是,我意识到我错过了连接字符串中的分号。可能有用......

答案 3 :(得分:5)

为Windows身份验证添加Integrated Security=True。这对我有用。

答案 4 :(得分:2)

您好,如果您尝试在架构中进行更改(例如创建表格或更改某个对象),则此问题仍然存在...

你没有权利这样做..

如果您正在使用MVC并且您的数据库已经退出服务器,则可以使用代码解决此问题

Database.SetInitializer<EmployeeContext>(null);

只需在application_start事件方法的Global.asax文件中添加此代码即可。

答案 5 :(得分:0)

确保您没有运行Fiddler。使用F12暂时禁用流量捕获解决了我的问题。

答案 6 :(得分:0)

如果您正在进行Windows身份验证:

  • 您可以添加&#34; Integrated Security = True&#34;到你的connectionString。

对于用户身份验证:

  • 您必须将sql server身份验证信息(&#34; uid = YourUserName; Password = yourpassword;&#34;)添加到您的connectionString。

答案 7 :(得分:0)

我太蠢了。我遇到了同样的错误然后我意识到当我没有为发布模式配置转换时,我在发布模式下的包管理器控制台中运行了update-database -verbose命令。

这是在调试模式下对我有用的连接字符串格式。

  

密码= dumbeldore;持久安全信息= True;用户ID = johnmcclain;初始目录= DB_diehard400;数据源= killthatbill;

  • 出于安全原因编辑的连接字符串中的敏感信息。请只遵循格式。

答案 8 :(得分:0)

对我来说,问题在于我的密码包含一个&签名。