为什么EF使用不同的名称创建数据库文件?

时间:2015-11-05 14:44:45

标签: entity-framework model-view-controller

我正在尝试根据Pluralsight培训进行基本的数据库迁移,但是创建的数据库文件的名称与连接字符串中指定的名称不匹配。

<add name="DefaultConnection" 
connectionString="Data Source=(LocalDb)\v11.0; 
Initial Catalog=eManager.Web; 
Integrated Security=SSPI; 
AttachDbFilename=|DataDirectory|\eManager.mdf" providerName="System.Data.SqlClient" />

而不是创建 eManager.mdf ,而不是创建 DefaultConnection.mdf

在本教程中,它应该是 eManager.mdf

知道为什么吗?

My Db Context的定义如下:

public class DepartmentDb : DbContext, IDepartmentDataSource
{
    public DepartmentDb() : base("DefaultConnetion")
    {
    }

    public DbSet<Employee> Employees { get; set; }
    public DbSet<Department> Departments { get; set; }

    IQueryable<Employee> IDepartmentDataSource.Employees
    {
        get { return Employees; }
    }

    IQueryable<Department> IDepartmentDataSource.Departments
    {
        get { return Departments; }
    }
}

更新:拼写错误&#34; DefaultConnetion&#34;在构造函数参数中:))

2 个答案:

答案 0 :(得分:1)

base("DefaultConnetion")

使用此代码,EF将在app.config中查找具有此名称的连接字符串fail(称为“DefaultConnection”,而不是“DefaultConnetion”),并将此字符串解释为数据库名称。

答案 1 :(得分:0)

您可以通过执行以下操作将名称放入DbContext

public class DataContext : DbContext
{
    public DataContext() : base("DefaultConnection")
    { }

    //....
}