有没有办法在 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/

10-13 07:58