过滤子集合的实体框架7

时间:2016-02-24 10:22:33

标签: c# entity-framework linq

我会尝试尽可能简单地指定它,我正在使用EF7。

我有两个表--Report和ReportCategories,这些表通过reportCategoryMap表链接,该表对两个表都有外键约束(两个表的EF数据模型都有reportcategorymap的hashset)

我想过滤报告信息,但还想过滤回来的报告类别。为了简化我的查询,它如下

_dbContext.Reports.Where(r => r.reportId == 1)
                  .Select(r => new Report
                                {ReportId = r.ReportId,
                                 ReportCategoryMap = r.ReportCategoryMap.Where(rc => !rc.IsDeleted)
                                 }

问题是返回的ReportCategoryMap集合中的ReportCategory对象始终为空。我试过加入

_dbContext.Reports.Include(r => r.ReportCategoryMap).ThenInclude(rcm => rcm.ReportCategory).Where .... 

但这不起作用。

如果我删除了Select,则值会返回,但不删除Category时不会过滤CategoryMap。在查询运行后我总是可以使用过滤逻辑,但希望我做一些愚蠢的事情,有人可以在linq查询中帮助我

希望这是有道理的。

0 个答案:

没有答案