这里的建立和组织线给出了错误,他们无法隐式地将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);
答案 0 :(得分:4)
您可以使用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));