有没有办法在 Linq 中过滤 LoadWith
我目前有 ReportCategory 和 Reports 表。我想检索所有类别,然后只想加载事件报告。
这是我到目前为止。
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<ReportCategory>(report => report.Reports);
db.LoadOptions = dlo;
var categories = from c in db.ReportCategory
where c.InUse == true
select c;
它按预期返回所有事件类别和每个类别的所有报告,但我不需要所有报告,我只需要标记为 InUse 的报告。
所以我试过这个...
dlo.LoadWith<ReportCategory>(report => report.Reports.Where(r => r.InUse == true));
但我收到以下错误。
InvalidOperationException:指定的表达式必须采用 p.A 形式,其中 p 是参数,A 是属性或字段成员。
有没有办法用 LoadWith 做到这一点,还是我应该改用连接?
最佳答案
找到了...
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<ReportCategory>(report => report.Reports);
dlo.AssociateWith<ReportCategory>(r => r.Reports.Where(i => i.InUse == true));
db.LoadOptions = dlo;
这将带回所有类别和事件报告
关于.net - 过滤 LoadWith 结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5075939/