在多-多关系中添加where子句

本文关键字:添加 where 子句 关系 在多 | 更新日期: 2023-09-27 18:00:14

我想为餐厅建立一个目录,搜索基于三个条件,我的问题是添加使用typecuisine的第三个where子句,就像你在代码中看到的那样,两个第一条件是好的,我的实体

var query = db.Restaurants.AsQueryable();
if (!string.IsNullOrEmpty(Name))
    query = query.Where(c => c.Nom.Contains(Name));
if (RegionId != Guid.Empty)
    query = query.Where(c => c.RegionId == RegionId);
//how to get typecuisine ID from table Restaurant instead it's only in  table TypeCuisine

if (typeId != Guid.Empty)
    query = query.Where(tc=> tc.TypeCuisines.Where(r=>r.TypeCuisineId == typeId));
return query.ToList();

在多-多关系中添加where子句

.Where需要返回类型为bool,而您返回的是内部Where的结果,即IEnumerable

您缺少的是.Any()函数,而不是内部的Where

var query = db.Restaurants.AsQueryable();
if (!string.IsNullOrEmpty(Name))
    query = query.Where(c => c.Nom.Contains(Name));
if (RegionId != Guid.Empty)
    query = query.Where(c => c.RegionId == RegionId);
if (typeId != Guid.Empty)
    query = query.Where(tc=> tc.TypeCuisines.Any(r => r.TypeCuisineId == typeId));
return query.ToList();