2015-11-05 92 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") 
    { } 

    //.... 
} 
相關問題