0
私はEntity Framworkをデータベース優先アプローチで使用しています。条件に基づいてテーブル名やビュー名を動的に変更したいEntity Frameworkの動的テーブル名
ここでは、レコードを取得するためにV_OVT_VLD_340B_DNA_CLD
またはV_OVT_B_table
またはV_OVT_c_table
を使用しています。
ソースに基づいて、別のテーブル名を呼び出してレコードを取得する必要があります。コード全体のコードスニペットは、テーブル名を除いて同じです。
私は動的条件に基づいてデシベルコンテキストにテーブル名を付けることにより、上記の実装を変更したいコード
private dOVT_OutlierViewEntities db = new dOVT_OutlierViewEntities();
if(source == "a")
{
var result = this.db.V_OVT_VLD_340B_DNA_CLD.Where(x => x.DNA_PGM_PRTN_ID == partitionId && x.CLIENT_ID == clientId).ToList().Select(y => new ValidationModel
{
claim_validation_test_id = new List<byte?> { y.CLAIM_VLD_TEST_ID },
claim_id = y.CLAIM_ID,
Provider_ID = y.Provider_ID,
}).Take(id).ToList();
}
if(source == "b")
{
var result = this.db.v_OVT_B_table.Where(x => x.DNA_PGM_PRTN_ID == partitionId && x.CLIENT_ID == clientId).ToList().Select(y => new ValidationModel
{
claim_validation_test_id = new List<byte?> { y.CLAIM_VLD_TEST_ID },
claim_id = y.CLAIM_ID,
Provider_ID = y.Provider_ID,
}).Take(id).ToList();
}
if(source == "c")
{
var result = this.db.v_OVT_C_table.Where(x => x.DNA_PGM_PRTN_ID == partitionId && x.CLIENT_ID == clientId).ToList().Select(y => new ValidationModel
{
claim_validation_test_id = new List<byte?> { y.CLAIM_VLD_TEST_ID },
claim_id = y.CLAIM_ID,
Provider_ID = y.Provider_ID,
}).Take(id).ToList();
}
以下を参照してください。
string tableName = string.empty
if(source == "a")
tableName = "aTable";
if(source == "b")
tableName="bTable";
this.db.tableName.where().....
これは可能ですか?
何GetTable()メソッドを意味しました。私はコンテキスト内で "GetTable"という名前のメソッドを見つけることができません – SivaRajini