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

时间:2015-06-22 12:49:36

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

我使用EntityFramework Code第一种方法创建了简单的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服务器实例时,没有创建数据库。我没有在web.config中指定“初始目录”值(DBName),并且在代码中创建上下文期间没有给出DBname。我甚至在运行时检查了DB Name,但它返回空字符串,如下面的屏幕截图所示。我甚至检查了SQL Express,没有在那里创建的DB,甚至在我的其他实例上也没有。那么我在哪里可以找到自动创建的数据库。我确信DB存储在某处,因为存储和检索记录没有任何错误。

enter image description here

2 个答案:

答案 0 :(得分:3)

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

为了进一步澄清,master是一个系统数据库,因此,要在SSMS中查看它,您需要导航到Server - &gt; Databases - &gt; System Databases

要解决此问题,您可以:

  1. 在连接字符串中指定数据库名称。
  2. 更改用户的默认数据库。
  3. 我建议指定数据库名称,除非您需要为登录动态更改数据库,否则最好明确指出这样的事情。

答案 1 :(得分:0)

也许它在解决方案中创建了一个本地数据库。转到View并选择Server Explorer,然后查看Data Connections下拉列表。