C# 动态LINQ2Entities查询无法将IEnumerable转换为bool

C# 动态LINQ2Entities查询无法将IEnumerable转换为bool,c#,.net,linq,linq-to-entities,C#,.net,Linq,Linq To Entities,这里的机构和组织行给出了一个错误,即它们不能隐式地将IEnumerable转换为bool。我错过了什么?在方法结束之前,我不能使用贪婪运算符。我相信这很简单,但我看不出来 IQueryable<User> query = context.Users; if (usvm.EstablishmentId > 0) query = query.Where(x => x.UserEstablishments .Where(y => y.UserEs

这里的机构和组织行给出了一个错误,即它们不能隐式地将IEnumerable转换为bool。我错过了什么?在方法结束之前,我不能使用贪婪运算符。我相信这很简单,但我看不出来

IQueryable<User> query = context.Users;

if (usvm.EstablishmentId > 0)
    query = query.Where(x => x.UserEstablishments
        .Where(y => y.UserEstablishmentId == usvm.EstablishmentId));

if (usvm.OrganisationId > 0)
    query = query.Where(x => x.UserEstablishments
        .Where(y => y.Establishment.OrganisationId == usvm.OrganisationId));

if (!String.IsNullOrEmpty(usvm.Forename))
    query = query.Where(x => x.Forename == usvm.Forename);

if (!String.IsNullOrEmpty(usvm.Surname))
    query = query.Where(x => x.Surname == usvm.Surname);

if (usvm.DOB != null)
    query = query.Where(x => x.DOB == usvm.DOB);

List<User> m = query.ToList();
return ToViewModel(m);
IQueryable query=context.Users;
如果(usvm.restitmentid>0)
query=query.Where(x=>x.UserEstations
。其中(y=>y.UserEstablementId==usvm.EstablementId));
如果(usvm.OrganizationId>0)
query=query.Where(x=>x.UserEstations
。式中(y=>y.Establish.OrganizationId==usvm.OrganizationId));
如果(!String.IsNullOrEmpty(usvm.Forename))
query=query.Where(x=>x.Forename==usvm.Forename);
如果(!String.IsNullOrEmpty(usvm.姓氏))
query=query.Where(x=>x.lasname==usvm.lasname);
如果(usvm.DOB!=null)
query=query.Where(x=>x.DOB==usvm.DOB);
List m=query.ToList();
返回视图模型(m);
您可以使用以下方法:

您可以使用以下方法:


在哪里设置usvm?它是从控制器传递的视图模型。这些值都存在,所以这不是问题所在。它得到了正确的查询,我似乎做不到。你在哪里设置usvm?它是从控制器传递的视图模型。这些值都存在,所以这不是问题所在。我似乎做不到这一点。企业和组织都应该使用any。企业和组织都应该使用any
if (usvm.EstablishmentId > 0)
    query = query.Where(x => x.UserEstablishments
        .Any(y => y.UserEstablishmentId == usvm.EstablishmentId));

if (usvm.OrganisationId > 0)
    query = query.Where(x => x.UserEstablishments
        .Any(y => y.Establishment.OrganisationId == usvm.OrganisationId));