EF Code首先找不到数据库

时间:2016-01-17 17:35:25

标签: c# sql-server entity-framework

我创建了一个获取某些数据并存储到数据库中的服务。 在获取数据或存储数据时,我可以看到数据正确存储但我无法在任何地方看到数据库。

我的连接字符串和上下文如下

public class Context: DbContext 
{
    public DBContext() : base("name=DBConnectionString") 
    {
        public DbSet<IEmployee> Employees {get; set;}
    }
}


 <connectionStrings>
    <add name="DBConnectionString" 
    connectionString="Data Source=(localdb)\v11.0;Initial Catalog=SLDB;Integrated Security=true" 
    providerName="System.Data.SqlClient"/>
 </connectionStrings>

DB没有出现在SQL Server对象资源管理器中,我也无法在物理文件系统上找到它。

我已经查看了物理/ mdf文件的以下位置

  • C:\用户\ HaseebAsif
  • %APPDATA%(漫游/本地)\微软....
  • c:\ Program Files \ Microsoft \ Microsoft sql server ....

当我使用'(localdb)/v11.0'连接到服务器时,它只显示系统数据库,而不是我的,SLDB。

任何想法如何在SSMS或Windows资源管理器中查看数据库

1 个答案:

答案 0 :(得分:1)

AttachDbFilename=c:\path\todb\SLDB.mdf添加到包含EF上下文/模型等的项目的连接字符串和应用程序本身。

您还可以在连接字符串中使用应用程序域属性|TheVariable|

然后在你的Configuration.cs EF类模块构造函数中:

public Configuration()
{
    AppDomain.CurrentDomain.SetData("TheVariable", @"c:\path\todb"); //or something dynamic...
}

在启动应用程序时执行相同操作,然后就可以这样做:

AttachDbFilename=|TheVariable|\SLDB.mdf

再次执行Update-database,MDF文件将位于连接字符串中指定的路径。

如果此时数据库未出现在SQL Management Studio中,请右键单击Database节点并手动Attach MDF。