2017-02-20 2 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を呼び出しますプロジェクト。これは最初の問題です。これは上記の設定から期待されるものではありません。

2番目の問題は、実際にMVCアプリケーションを起動してデータベースにアクセスするときに、別のMDFファイルセットが作成されることです。私の場合では、これは2つのファイルになります:

  • DataAccess.DataContext`1[Entity2].mdf
  • DataAccess.DataContext`1[Entity1].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> 
    
    関連する問題