2017-02-20 24 views
0

我有問題要正確配置LocalDB。這是設置:如何強制LocalDB使用相同的數據庫(跨項目和實體)?

  • 項目「DataAccess」,其中包含啓用了代碼第一次遷移的EF6 DbContext。沒有app.config,而是通過StartUpProject參數引用下面的項目。
  • 工程「網絡」,包含下面的連接字符串MVC應用程序:

    <add name="devDatabase" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Integrated Security=True;AttachDbFilename=c:\Temp\devDB.mdf" providerName="System.Data.SqlClient"/>

當調用數據項目,DataAccess.DataContext.mdf在MVC的App_Data目錄中創建一個MDF文件Update-Database項目。這是第一個問題,因爲它不是我期望的配置。

第二個問題是,實際啓動MVC應用程序和訪問數據庫時,會創建另一組MDF文件。在我的情況下,這將導致兩個文件:

  • DataAccess.DataContext`1[Entity1].mdf
  • DataAccess.DataContext`1[Entity2].mdf

所以現在我有散落在一堆文件,這是完全無用的,當然我的數據。任何人都可以在正確的方向指向我失去的東西嗎?

回答

0

好吧,在安裝SQL Express並運行到基本相同的問題後,我找到了一個解決方案。我已經添加了連接字符串的名字我的DbContext執行,現在它的工作:

public class DataContext : DbContext 
{ 
    public DbSet<Entity1> SomeEntities { get; set; } 

    public DataContext() : base("name=DatabaseConnectionString") 
    { 

    } 
} 
<connectionStrings> 
    <add name="DatabaseConnectionString" 
     connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=MBLux.CAP;Integrated Security=True;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 
相關問題