Linq选择另一个表中至少有一个条目的位置

时间:2018-04-24 09:04:34

标签: c# linq

我有以下结构,我不想使用Linq查询,特别是Linq to Entities(Enitity Framework)。

  • 表1:RouteMeta
  • 表2:SitePage

多个 SitePages 可以链接到相同的 RouteMeta

我查询Route Meta以选择多行。我正在使用通用存储库,目前是这样的:

return r.Find().ToList();

没有什么特别的 - 查找方法接受一个可选的linq表达式,所以我可以这样做:

return r.Find(x => x.Status=1).ToList();

但是,我真正想要做的是从RouteMeta中选择行,其中SitePages中至少存在一个链接行,其属性为IsPublished = true。

return r.Find(x => x.SitePages("where y => y.IsPublished = true");

显然,上述情况并不正确,我只是想更好地解释一下情景。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

尝试类似的东西 return r.Find(x=>x.Sitepages.Any(y=>y.Published))

如果可能的话,我还建议使用分析器检查这是否正确转换为SQL。它可能应该这样做,但它取决于您的存储库的工作方式。