エンティティ オブジェクト (ADO.NET EF オブジェクト) を初期化しようとしていますが、使用する接続文字列を選択できません。ユーザーにさまざまなアクセス レベルを与えるために、接続文字列を変更する必要があります。
Entities オブジェクトにはオーバーライドはなく、パラメーターのないコンストラクターのみです。
誰かが私に何か指針を与えることができれば、それはありがたいです。
エンティティ オブジェクト (ADO.NET EF オブジェクト) を初期化しようとしていますが、使用する接続文字列を選択できません。ユーザーにさまざまなアクセス レベルを与えるために、接続文字列を変更する必要があります。
Entities オブジェクトにはオーバーライドはなく、パラメーターのないコンストラクターのみです。
誰かが私に何か指針を与えることができれば、それはありがたいです。
デザイナーを使用して.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();
}
}
ここで、接続文字列を基本クラスに渡しますが、これが使用される唯一のものです。ただし、これは、ほとんどの場合、毎回これを提供する必要があることを意味します。
お役に立てれば...