2015-11-05 93 views
0

我试图根据Pluralsight培训来进行基本的数据库迁移,但创建的数据库文件的名称与连接字符串中指定的名称不匹配。为什么EF使用不同的名称创建数据库文件?

<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

任何想法为什么?

我的数据库上下文的定义是这样的:

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; } 
    } 
} 

更新:拼写错误 “DefaultConnetion” 在构造PARAM :))

回答

1
base("DefaultConnetion") 

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

+0

该死的......谢天谢地。 – monstro

0

你可以把名字到您DbContext通过执行类似这样的:

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

    //.... 
} 
相关问题