我有三个基于 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)。
有没有办法跳过 Pupil 和 ClassType 实体之间的对象?也就是说,只加载 SchoolClass 的 ClassType 导航属性?
加载所需数量的学生,不包括是 20 毫秒,而包括是 250 毫秒。我想知道这是否可以优化?