0

エンティティ オブジェクト (ADO.NET EF オブジェクト) を初期化しようとしていますが、使用する接続文字列を選択できません。ユーザーにさまざまなアクセス レベルを与えるために、接続文字列を変更する必要があります。

Entities オブジェクトにはオーバーライドはなく、パラメーターのないコンストラクターのみです。

誰かが私に何か指針を与えることができれば、それはありがたいです。

4

1 に答える 1

0

デザイナーを使用して.edmxファイルを生成した場合は、次のようになります。

    public MyEntities() : base("name=MyEntities", "MyEntities")
    {
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
    }

これにより、デフォルトで、構成ファイルから接続文字列が取得されます。

この場合にできることは、接続文字列を設定することです

    public partial class MyEntities
    {

    partial void OnContextCreated()
    {
       //Dynamically Building a Connection String
       this.Connection.ConnectionString = "myconnectionstring";          
    }
   } 

ただし、これは最初に基本コンストラクターを使用して構成から接続文字列をプルし、次にカスタム バージョンで設定して、基本的に接続文字列をオーバーライドすることに注意してください。これは通常、既定の接続文字列が常に必要な場合に適しています。

もう少し制御が必要な場合の別のオプションは、以下に示すように、コンストラクターを介して接続文字列を渡すことです。

    public partial class MyEntities
    {   
     public MyEntities(string connectionString) :           
     base(connectionString,"MyEntities")       
     {

       this.OnContextCreated();       
    }
   }

ここで、接続文字列を基本クラスに渡しますが、これが使用される唯一のものです。ただし、これは、ほとんどの場合、毎回これを提供する必要があることを意味します。

お役に立てれば...

于 2013-03-30T12:23:42.270 に答える