3

4 つのプロジェクトで構成されるソリューションがあります。MVC、WCF、ビジネス LYR、DataAcess。データベース トランザクションにエンティティ フレームワークを使用しています。私の要件は、アクセス層の APP.cofig を参照せずに、MVC webconfig からのみエンティティ接続文字列をフェッチすることです。このシナリオで可能ですか?

次のコードを試しているときに、エラーが発生しました。

    this.ConnectionString="data source=cmh-sosql;initial catalog=Student;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework";

            System.Data.SqlClient.SqlConnectionStringBuilder scsb = new System.Data.SqlClient.SqlConnectionStringBuilder(this.ConnectionString);

EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder();
ecb.Metadata = "res://*/schoolModel.csdl|res://*/schoolModel.ssdl|res://*/schoolModel.msl";
ecb.Provider = "System.Data.SqlClient";
ecb.ProviderConnectionString = scsb.ConnectionString;

using (SchoolDB schoolDB = new SchoolDB(ecb.ConnectionString))

エラー: エンティティ タイプの学生は、現在のコンテキストのモデルの一部ではありません。

4

1 に答える 1

2

あなたは絶対に正しいです。私は解決策を得ました。エンティティ モデルへの参照用に webconfig に文字列を保持する必要はありません。上記のコードを参照用に使用できます。ただし、変更はコンテキスト オブジェクトを構成することです。

public SchoolDB(string  connectionString)
        : base(connectionString)
    {
    }
We need to change the constructor also by this format. 

ありがとうサンパス

于 2012-12-16T05:10:30.500 に答える