>>106
当初は利用目的がわからなかったため、.GetProperties() やジェネリックで対象を動的に指定して DbSet<T> 型プロパティを呼び出す方法を提案しましたが、
DbContext に MyEntiyty1, MyEntity2, ... と 100 個のテーブルがあり、個々のテーブルに対応した Test1, Test2 ... というテスト関数を地の文で定義しており、
これをシステマティックに対応させたいというのが課題の本質であるなら、実はジェネリックとか使わなくてもできます。
テスト関数 Test1 は DbSet<MyEntityDataModel1> が入力で bool が出力として bool result1 = context.MyEntiti1.Test1() or Test1(context.MyEntity1)
と記述できるように定義されていると思いますが、これを下記のように変形すればよいと思います。
1. MyDbContext を入力として bool result1 = context.Test1() or Test1(context) と記述できるようにテスト関数を書き換える
(Test1 内部の冒頭で context.MyEntity1 と対象を指定する)
2. テスト関数をラムダ式にし、地の文で定義している Test1, Test2 ... というメソッド群をリストオブジェクトにする
List<Func<MyDbContext, bool>> TestList =
new [] { context => { context.MyEntity1 /* ... */ },
context => { context.MyEntity2 /* ... */ }, ... };
3. using ブロック内 for/foreach 文でリストオブジェクトをキックする
using (var context = new MyDbContext())
{
bool result[100];
for (var i = 0; i < 100; i++)
{
result[i] = TestList[i](context);
}
}
ふらっと C#,C♯,C#(初心者用) Part146
■ このスレッドは過去ログ倉庫に格納されています
112デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/20(金) 07:23:20.70ID:NMJ3uqPu0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎますね」 [冬月記者★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- 自ら「パンセクシュアル」だと明かし、東由貴・東京都議(立憲民主)が「パートナーシップ」施策の充実求める:東京新聞 [少考さん★]
- 【女子カーリング】五輪出場決定!女子日本代表の「フォルティウス」チーム名は「より強く」の意味 [征夷大将軍★]
- VIP過疎りすぎて9人くらいの同じメンバーがローテーションして書き込んでるだけじゃね?
- 高市を支持する日本人さんはなにが理由なの?円安進行、国債金利爆上げ、最大貿易国との摩擦とたった1ヶ月で国益を棄損してるのに [472617201]
- 【悲報】ご飯がススム「ゴキブリが入れる隙間なんてない!」→めちゃめちゃデカい穴が空いてましたwwwwwwwwwwwwwwwwwwww [802034645]
- ガイナックス破産整理終了で42年弱の歴史に幕 [256556981]
- ( ´・ω・` )「油そばって実は割とヘルシーなんだね」
- Twitter医師ら「死ぬほど勉強して博愛精神求められるとかそらみんな美容外科なるわ。嫌なら普通の医療も保険診療廃止しろ!」 [762037879]
