c# - 无法找到自动创建的数据库

标签 c# asp.net asp.net-mvc entity-framework

我使用 EntityFramework 代码优先方法创建了简单的 ASP.NET MVC4 应用程序。实体类如下:

public class Album
{
    [Key]
    public int AblumId { get; set; }
    public decimal Price { get; set; }
    public string Title { get; set; }

}

public class MusicContext : DbContext
{
    public DbSet<Album> Albums { get; set; }
}

web.config 连接细节如下

 <connectionStrings> 
    <add name="MusicContext" connectionString="Data Source=localhost;Integrated Security=True" providerName="System.Data.SqlClient" />
 </connectionStrings>

应用程序运行良好,我可以添加、删除、编辑相册记录,但找不到数据库。当我使用 SSMS 检查 SQL Server 实例时,没有创建数据库。我没有在 web.config 中指定“初始目录”值 (DBName),也没有在代码中创建上下文期间给出 DBname。我什至在运行时检查了数据库名称,但它返回空字符串,如下面的屏幕截图所示。我什至检查了 SQL Express,那里没有创建任何数据库,甚至在我的其他实例上也没有。那么我在哪里可以找到自动创建的数据库。我确信数据库存储在某个地方,因为记录的存储和检索没有任何错误。

enter image description here

最佳答案

如果您不指定数据库名称,则连接将使用用户的默认数据库,在这种情况下它是集成安全性,因此它是您的 Windows 登录名。由于您可能在服务器上拥有完整的系统管理员,因此默认数据库将为 master,因此您会在其中找到所有表。

为了进一步说明,master 是一个系统数据库,因此,要在 SSMS 中查看它,您需要导航到 Server -> Databases -> 系统数据库

要解决此问题,您可以:

  1. 在连接字符串中指定数据库名称。
  2. 为您的用户更改默认数据库。

不过,我建议指定数据库名称,除非您需要为登录动态更改数据库,否则最好明确说明此类事情。

关于c# - 无法找到自动创建的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980437/

相关文章:

c# - httpclient 调用 webapi 以发布数据不起作用

c# - 是什么让 ADO.NET Entity Framework 与市场上的其他 ORM 不同?

c# - 运行 ProcDump 时出错

c# - 长时间运行的查询 Web 应用程序( azure )解决方案

c# - 如何使用 ASP.NET MVC5 将 ErrorCode 转换为字符串?

html - IE窗口缩小时DIV溢出外层DIV(Restore-Down)

asp.net-mvc - ASP.NET MVC 在自定义操作过滤器中查找当前用户名

c# - 两个同名字段

asp.net-mvc - Html.DisplayTextFor() 有什么意义?

c# - 尝试评估 bool 时出错?