3

エンティティフレームワークコードで使用されている接続文字列をプロジェクトで最初に変更するときに問題があります。私はMVC3プロジェクトを作成し、次にDomainClassesとDataAccessの2つのプロジェクトを追加しました。Entity Framework 4.1コードで接続文字列を最初に変更できません

DomainClassesプロジェクトは、一つのクラスでClasses.csという名前の1つのクラスファイルを持っています

public class User 
{ 
    public int ID { get; set; } 
    public string Username { get; set; } 
    public string EmailAddress { get; set; } 
    public string Password { get; set; } 
    public int StatusID { get; set; } 
    public DateTime DateCreated { get; set; } 
} 

DATAACCESSプロジェクト1クラスと1つのクラスファイルの名前PLNQDB.csあります

public class PLNQDB : DbContext 
{ 
    public DbSet<User> Users { get; set; } 
} 

私が持っているのこれらのプロジェクトのそれぞれへの参照は、MVCプロジェクトに組み込まれています。すべてがうまく構築され、実行され、データを保存してそこからデータを取得できるデータベースファイルも作成されます。

私は自動車のウィンドウで見ることができますプロジェクトthis.db.base.Database.Connection.base.ConnectionString下で使用されている接続文字列=

"Data Source=.\\SQLEXPRESS;Initial Catalog=PLNQ.DataAccess.PLNQDB;Integrated Security=True;MultipleActiveResultSets=True" 

を実行している場合は私の質問はどのように私はこれを上書きしないでリモートサーバを使用するために自動生成された接続文字列。 MVCプロジェクトのweb.configファイルに接続文字列を追加しました。

<connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

ただし、プロジェクトを実行するたびに、自動生成された接続文字列が使用されます。また、DataAccessとDomainClassesの両方のプロジェクトで同じ接続文字列を持つApp.configファイルを追加しようとしました。

私には何が欠けていますか?

答えて

15

あなたのDbContextクラス名と一致する接続文字列に名前を付ける必要があるオプションのカップル

1があります。

例えば、あなたのDbContextコンストラクタで

<connectionStrings> 
    <add name="PLNQDB" 
     connectionString="Data Source=255.255.255.255;Initial Catalog=PLNQ;User ID=blah;Password=blah" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

2接続文字列名

public class PLNQDB : DbContext 
{ 
    public PLNQDB():base("ApplicationServices"){} 

    public DbSet<User> Users { get; set; } 
} 
と基底クラスのコンストラクタを呼び出します
関連する問題