我想在构建应用程序时测试多种方法(数据库优先,模型优先,代码优先)。在使用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