我先使用EF 4.1代码。运行到一个非常奇怪的情况: 数据库中不存在,代码被执行,只要代码要执行对资源库中查询(也使用存储库模式)EF 4.1代码首先导致奇怪(登录)运行时错误
MyRepsitory.Get(whereClause)
我得到这个错误:
Cannot open database "MyDatabase" requested by the login. The login failed. Login failed for user 'sa'.
行!所以我试图找出它是由什么引起的,并做了以下操作:在导致错误的行上设置了一个断点,并且一旦该行被命中,我从调试(观察)窗口发出另一个针对存储库的查询
MyRepository.GetAll();
et voila数据库被创建。所以我想:为什么不欺骗数据库(作为解决方法)并对存储库发出此请求?结果是:一旦这个代码被执行,我会得到相同的错误!
我在做什么错了? 这曾经像一个魅力工作!
编辑 这让我生气! 我将模型和一些代码(用于存储库模式)分离到一个新项目中。试图执行相同的代码,它在这个新项目中起作用。这怎么可能?
看着SQL Serv2008 EXP的日志,我看到下面的错误/事件:
启动备份数据库 'MyDatabase的'
设置数据库选项SINGLE_USER为ON数据库MyDatabase的。
错误:18456,严重性:14,状态:38
用户登录失败 '山'。原因:无法打开显式指定的数据库。 [客户:]
我今天在VS 2015的Web API项目中遇到了非常类似的问题。我从零开始没有任何新项目。相反,我在解决方案资源管理器中对我的C#web API项目执行了一个干净的操作,并且它工作正常。这太疯狂了。同一个sa凭证(在我的项目的web.config文件中配置)在整个一天都在工作,它突然停止工作,没有任何地方。 – RBT 2016-12-02 12:01:49