我有一个 GroupJoin 查询,它返回如下结果:
IEnumerable<ICD.ViewModels.HomeSearchViewModel> query = ICDUnitOfWork.AlphaGroups.Find()
.GroupJoin(ICDUnitOfWork.Alphas.Find(),
a => a.AlphaGroupID,
g => g.AlphaGroupID,
(alphaGroups, alphas) =>
new ICD.ViewModels.HomeSearchViewModel
{
AlphaGroups = alphaGroups,
Alphas = alphas
});
Alphas 是 IEnumerable
并且一个 AlphaGroup 包含多个 Alphas。他们都有一个名为“Title”的属性(property)。我需要根据“Title”属性过滤包含字符串“baby”的结果。我怎样才能做到这一点?
编辑:我还应该提到,如果特定的 alpha 组标题包含“baby”,则应显示具有 AlphaGroupID 的所有相应 Alpha。
最佳答案
建议不要使用.Any()
,因为可以映射到嵌套联合,而只是过滤预连接
尝试
IEnumerable<ICD.ViewModels.HomeSearchViewModel> query =
ICDUnitOfWork.AlphaGroups.Find()
.Where(g => g.Title.Contains("baby"))
.GroupJoin(ICDUnitOfWork.Alphas.Find()
.Where(a => a.Title.Contains("baby"),
a => a.AlphaGroupID,
g => g.AlphaGroupID,
(alphaGroups, alphas) =>
new ICD.ViewModels.HomeSearchViewModel
{
AlphaGroups = alphaGroups,
Alphas = alphas
}).AsEnumerable();
关于c# - 过滤 GroupJoin 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365844/