向多对多关系添加 where 子句
adding where clauses to a many many relationship
我想为餐厅建立一个目录,搜索基于三个条件 我遇到的问题是添加第三个使用 typecuisine
的 where 子句,就像您在代码中看到的那样 2 个第一个条件很好my entity
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
期望 return 类型的 bool
而您正在 return 内部 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();
我想为餐厅建立一个目录,搜索基于三个条件 我遇到的问题是添加第三个使用 typecuisine
的 where 子句,就像您在代码中看到的那样 2 个第一个条件很好my entity
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
期望 return 类型的 bool
而您正在 return 内部 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();