我想在構建應用程序時測試多種方法(數據庫優先,模型優先,代碼優先)。在使用T4Scaffolding並且在DB修改後有很多問題之後,我通過EF沒有足夠的靈活性。現在我發現了一件非常奇怪的事情。我留下了一個在Web.Config中指定的'DefaultConnection',並指向解決方案的App_Data文件夾中的單個.mdf文件。使用代碼優先的方法,我創建了我的實體(類),然後是腳手架存儲庫,上下文,一切似乎都工作得很好,除非我在刪除和更新數據庫之前就已經存儲了數據。但是,在VS Server Explorer中檢查之後,數據庫僅包含用於Identity(用戶,角色)的表,這表明實際的數據庫位於其他位置。我懷疑它位於'C:\ Users {MyUser} \ AppData \ Local \ Microsoft \ Microsoft SQL Server本地數據庫\實例'。但是我不能打開.mdf文件來檢查,因爲它們已經被使用了。我被卡住了。我的數據在哪裏?LocalDB數據庫存儲在哪裏?
忘了提及我在我的應用程序中有兩個上下文,因此我在PM控制檯收到警告:「在程序集中找到了多個上下文類型...」。
Howerver,第一個是「ApplicationDbContext」,它僅涉及身份DB:
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
和第二上下文被綁定到由該Web.Config中單個DB連接,並且它具有業務邏輯實體
如果您想打開MS服務器使用的.mdf,請首先關閉服務中的SQL服務器服務。此外,打開Management Studio並查看db的屬性,您可以找到存儲mdf的位置 – apomene
但是當我說'打開'時,我的意思是在服務器資源管理器中打開,該服務器資源管理器使用SQL連接,該服務器無法與服務器停止建立 –
服務器資源管理器?...你指的是哪個客戶端程序? – apomene