簡體   English   中英

context.Database.EnsureDeleted() 和 context.Database.EnsureCreated() 失敗

[英]context.Database.EnsureDeleted() and context.Database.EnsureCreated() fails

我嘗試重現此示例,它是關於在單元測試中測試 EF 上下文操作(使用 MS SQL 服務器)。 此示例包含以下代碼:

using (var context = CreateContext())
{
   context.Database.EnsureDeleted();
   context.Database.EnsureCreated();
...

它看起來不錯,但最終出現異常:

無法打開登錄請求的數據庫“EFTestSample”。 登錄失敗。

這非常令人困惑,因為EnsureDeleted()不應該打開任何數據庫,它只是檢查這個數據庫的持久性。 我完全確定這不是安全問題,我嘗試了不同的登錄情況。 UPD:當服務器上存在數據庫時, EnsureDeleted() 工作正常(刪除數據庫)。

任何幫助表示贊賞,謝謝。

我找到了答案。 為示例中的示例代碼自動檢測到錯誤的命名空間。 有兩個類實現System.Data.Common.DbConnection

Connection = new Microsoft.Data.SqlClient.SqlConnection(ConnectionString);
Connection = new System.Data.SqlClient.SqlConnection(ConnectionString);

並且使用第一個是錯誤的 - EnsureDeleted()方法不會捕獲引發的異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM