>>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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【米紙報道】高市首相「コングレッショナルフェロー(官職)」経歴詐称疑惑… ★3 [BFU★]
- 【W杯】森保一監督が「首位突破」を厳命!スウェーデン戦は大量得点の圧勝狙う 2位じゃダメなのですか?ダメなのです!! [征夷大将軍★]
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★8 [Ailuropoda melanoleuca★]
- 【芸能】42歳・皆藤愛子「結婚への憧れも、ひとりの時間も大切にしたいのが本音」「まだはっきりとした答えはないが無理なく選んで…」 [冬月記者★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★3 [首都圏の虎★]
- 【クールジャパン】ゲームやアニメなどコンテンツ産業の海外展開支援、政府が司令塔の法人設立へ…日本の「勝ち筋」に官民の叡智結集 [樽悶★]
- 『安倍晋三のなく頃に』の富ヶ谷村でありがちな事件と言えば? [153736977]
- 神戸市の冷蔵庫で死体遺棄した事件
- 【速報】日本の出生数と婚姻数が18年ぶりにプラスに ※
- 大人気女性声優、病院にて本名で呼び出された事を激怒 [245325974]
- 秦谷美鈴「あなたのままでいい」←コイツ
- ダウンタウン+の思い出wwwwwwwwwwww