我有一个Visual Studio解决方案,在该解决方案上我一直在处理与实体框架编码相关的C#项目。
我正在创建一些测试数据库,以便首先连接并学习数据库和代码优先方法。现在,问题出在我每次尝试打开包含那些项目的解决方案时,由于某种奇怪的原因,Visual Studio或解决方案或其中的某个项目试图连接到那些数据库。由于删除了这些数据库,因此出现错误:
无法打开登录请求的数据库“公司”。登录失败。用户“管理员”登录失败。
这是错误消息快照:
我几个数据库一个接一个地收到此错误。但是我想知道为什么VS仅在加载解决方案时尝试连接到某些数据库?如果有人遇到这种情况或知道其背后的原因,那真是太好了。
注意:我提出的问题中的标签仅是由于我正在使用的环境而引起的。我正在设法弄清楚我的问题是否特别与那些领域有关。
TL; DR; 在Visual Studio的“服务器资源管理器”窗口中删除标记有红叉的无效/无效的SQL Server连接,以解决此问题。每当您从SQL Server删除相应的数据库时,SQL Server连接就会变为无效/陈旧,但Visual Studio对此一无所知,并且会继续尝试不必要的操作。
详细信息:正如@stuartd正确建议的那样,Visual Studio中的服务器资源管理器混乱了。发布答案以防其他人也有帮助。
我意识到,每次将实体框架的ADO.NET实体数据模型文件添加到我的项目中时,如下所示,它每次在Server Explorer窗口中添加一个SQL连接节点,如下所示。
The connection was corresponding to the DB I chose in the ADO.NET entity data model addition wizard. I see that there is red cross against few of them since I've deleted the databases from SQL Server instance. Whenever you load a solution Visual Studio will always try to refresh the connection of all the databases currently found in Server Explorer. In fact in the case of DBs which have a red mark against them (as they are deleted) I'm sure VS must be employing the retry logic as well while trying to make a connection with the database. All this takes and wastes time as far as the loading time of a solution is concerned.
如何解决错误:我删除了标有红叉的无效/未使用连接,以消除此问题。如果有人知道一种将连接标记为非活动的方法(例如,连接位于服务器资源管理器中),那将是很好的选择,但是在我要求刷新之前,VS不应尝试每次都进行连接,否则在我扩展其节点时它可能会刷新。
我还观察到Visual Studio以某种方式在每个解决方案文件的基础上维护了这些服务器资源管理器的连接,可能在*.suo
文件中。打开加载到Visual Studio中时遇到与DB连接问题有关的错误的每个解决方案后,我必须删除那些过时的连接。面对这个问题的所有解决方案至少都有一个与实体框架有关的项目:)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句