我使用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存储在某处,因为存储和检索记录没有任何错误。
答案 0 :(得分:3)
如果您没有指定数据库名称,那么连接将使用用户的默认数据库,在这种情况下,它是集成安全性,因此它是您的Windows登录名。由于您可能在服务器上拥有完整的系统管理员,因此默认数据库将为master
,因此您可以在其中找到所有表格。
为了进一步澄清,master
是一个系统数据库,因此,要在SSMS中查看它,您需要导航到Server
- &gt; Databases
- &gt; System Databases
。
要解决此问题,您可以:
我建议指定数据库名称,除非您需要为登录动态更改数据库,否则最好明确指出这样的事情。
答案 1 :(得分:0)
也许它在解决方案中创建了一个本地数据库。转到View并选择Server Explorer,然后查看Data Connections下拉列表。