コードの最初の「テーブル」クラス内から現在の接続にアクセスすることは可能ですか?
私はMVCマルチテナンシーアプリ(1つのアプリ、多くのdb)を作成しようとしていますが、dbcontextを作成するときに接続文字列(またはテナント名)を渡すのが最も簡単な方法です(他の方法を検討しました)これですが、実際には理解していません)。ただし、テーブルクラスに入ると、現在のデータベース接続にアクセスして、必要な他のアクションを実行できなくなります。
サンプルコード
public class ConnectionContext : DbContext
{
public ConnectionContext(String connectionString)
: base(connectionString)
{
if (!this.Database.Exists())
throw new Exception("Database does not exist");
}
public DbSet<Table1> Table1 { get; set; }
}
[Table("Table1")]
public class Table1
{
[Key]
public String Column1 { get; set; }
public String Column2 { get; set; }
public Int32 GetNoOfColumns()
{
using (var conn = new ConnectionContext("???")) // <-- **issue here**
{
//Code to get info
return 0;
}
}
public void Authorize()
{
using (var conn = new ConnectionContext("???")) // <-- **issue here**
{
this.Column2 = "Authorized";
conn.Entry(this).State = EntityState.Modified;
conn.SaveChanges();
}
}
}