我先使用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