3 つの DB テーブルに基づく 3 つのエンティティがあります (関係の下のカーディナリティ)。
Pupil - SchoolClass - ClassType
N:1 1:1
生徒のリストを取得し、そのスカラー プロパティを更新したいと考えていますGrade
。グレードは、生徒が出席するクラスの種類によって異なります。そのため、生徒ごとに ClassType も必要です。
これが私がすることです:
var pupils = from pupil in db.Pupils.Include("SchoolClass.ClassType")
select pupil;
foreach(Pupil p in pupils)
p.Grade *= p.SchoolClass.ClassType.GradingFactor;
これに関する問題は、SchoolClass がコンテキストにロードされ、すべてのスカラー プロパティ (+ 外部キー ID) が入力されていることです。
瞳孔エンティティと ClassType エンティティの間のオブジェクトをスキップする方法はありますか? つまり、SchoolClass の ClassType ナビゲーション プロパティのみを読み込むには?
インクルードなしで希望する生徒数をロードすると 20 ミリ秒、インクルードありで 250 ミリ秒でした。これを最適化できるかどうか疑問に思っていますか?