Visual Studio在加载解决方案时尝试连接SQL数据库.给出错误:无法打开登录请求的数据库

RBT*_*RBT 8 c# entity-framework visual-studio visual-studio-2013

我有一个Visual Studio解决方案,我一直在玩几个与实体框架编码相关的C#项目.

我正在创建一些测试数据库来连接并首先学习db和代码优先方法.现在每次我尝试打开包含这些项目的解决方案时都会遇到问题,因为某些奇怪的原因,Visual Studio或其中的解决方案或某个项目会尝试连接到这些数据库.它删除了那些数据库时出错:

无法打开登录请求的数据库"公司".登录失败.用户"administrator"登录失败.

这是错误消息快照:

在此输入图像描述

我为几个数据库逐个得到这个错误.但我想知道为什么VS会在加载解决方案时尝试连接到某个数据库?如果其他人遇到这种情况或知道其背后的原因那么这将是非常好的.

注意:我提出的问题中的标签仅仅是由于我所处理的环境.我试图找出一个问题来弄清楚我的问题是否与这些领域有关.

RBT*_*RBT 5

TL; DR; 删除Visual Studio的"服务器资源管理器"窗口中标有红叉的非活动/无效SQL Server连接,以解决该问题.每当从SQL Server中删除相应的数据库时,SQL Server连接都将变为无效/过时,但Visual Studio不知道它并不断尝试.

详细信息:正如@stuartd正确建议的那样,Visual Studio中的服务器资源管理器正在搞乱.发布答案,以防其他人也帮助.

我意识到每次我将Entity Framework的ADO.NET实体数据模型文件添加到我的项目中时如下所示,它在Server Explorer窗口中添加了一个SQL连接节点,如下所示.

在此输入图像描述

该连接对应于我在ADO.NET实体数据模型添加向导中选择的DB.因为我从SQL Server实例中删除了数据库,所以我发现它们中很少有红叉.每当您加载解决方案时,Visual Studio将始终尝试刷新当前在服务器资源管理器中找到的所有数据库的连接.事实上,对于对它们有红色标记的DB(因为它们被删除),我确信VS在尝试与数据库建立连接时也必须使用重试逻辑.就解决方案的加载时间而言,所有这些都需要浪费时间.

在此输入图像描述

如何解决错误:我删除了标有红叉的非活动/未使用连接以解决问题.如果有人知道将连接标记为非活动的方式将会很棒,即连接存在于服务器资源管理器中,但VS不应每次都尝试连接它们,直到我要求它刷新,或者当我扩展其节点时它可以刷新.

我还观察到Visual Studio以某种解决方案文件为基础维护这些服务器资源管理器连接,可能在*.suo文件中.在打开在Visual Studio中加载时遇到与DB连接问题相关的错误的每个解决方案后,我不得不删除那些陈旧的连接.面对这个问题的所有解决方案都至少有一个与实体框架相关的项目:).