Expression <func <>&gt; </func <>中的交叉引用集合

时间:2013-11-07 20:36:56

标签: c# linq entity-framework

我在linq to entities查询中使用了以下表达式

private Expression<Func<PageElement, bool>> ViewerProfileCheckExp(IViewerProfileModel vpSource)
    {
        return (pe) => pe.ViewerProfiles.Any(vp => vp.ViewLevel.Id == vpSource.ViewLevelId &&
                                                        vp.ViewTransitId == vpSource.ViewTransitId &&
                                                        vp.ViewGroups.ContainsAny(vpSource.Groups));
    }

在最后一个子句中,如果vp中的任何ViewGroups都包含在vpSource.Groups中,我希望能够在条件中返回true。我意识到ContainsAny不存在,但我想知道如何将我想要的内容整合到表达式中。

1 个答案:

答案 0 :(得分:1)

您在逻辑上寻找的是两个集合的交集是否包含任何项目:

vp.ViewGroups.Intersect(vpSource.Groups).Any()