找不到我的Entity Framework数据库

我对代码第一entity framework数据库有点困惑。

我创建了一个新的DbContext和类,我将在该上下文中存储,如下所示:

namespace MyProject.Subproject.Something { public class MyItem { public string One { get; set; } public string Two { get; set; } [Key] public string Three { get; set; } public string Four { get; set; } } public class MyAppData : DbContext { public DbSet MyItems { get; set; } } } 

我知道它有效,因为我能做到这一点而不会失败:

 var db = new MyAppData(); MyItem i = new MyItem(); // ... fill in item db.MyItems.Add(i); db.SaveChanges(); 

此外,如果我重新启动应用程序,我会发现db.MyItems.Count()以反映项目实际上是持久存储在某处。

我假设这是存储在localdb因为我没有设置SQL Server数据库。 我想要做的就是在localdb某处查看表格,但我似乎无法找到它。

如果我转到Data Sources -> Add New Data Source -> Database -> Data Set -> New Connection -> Microsoft SQL Server然后输入(localdb)v11.0作为服务器名称并下拉数据库列表,我没有看到列出的MyAppData或MyItems。

编辑 :我在App.config中看到的是


编辑2 :完整的App.config

     

您需要将数据库服务器设置为(LocalDB)\MSSQLLocalDB 。 这是对EF 6.1.1以后的更改。 您的参数中提到了MSSQLLocalDB。 有关更改的更多详细信息,请访问https://entityframework.codeplex.com/workitem/2246

MSSQLLocalDB是SQL Server 2014上的默认实例名称,而v11.0是SQL Server 2012上的默认实例名称

 using (var db = new BloggingContext()) { var connectionString = db.Database.Connection.ConnectionString; Console.WriteLine(connectionString); } 

上面的代码使用Microsoft示例; 用于BloggingContext替换您的DbContext类。 它将为您提供entity framework正在使用的连接字符串,其中包括实例名称。

是的 – 基于defaultConnectionFactory中的参数,看起来您使用的是默认的SQL 2014实例,而不是2012实例。

(localdb)\ ProjectsV12实例由SQL Server数据工具(SSDT)创建

(localdb)\ MSSQLLocalDB是SQL Server 2014 LocalDB的默认实例名称

并且(localdb)\ v11.0是SQL Server 2012 LocalDB的默认实例名称