2016-08-05 8 views
0

私はレストランのディレクトリを構築したいと考えています.3つの条件に基づいて検索します。第3のwhere節にはtypecuisineを使用します。 .Whereboolの戻り値の型を良いmy entity多くの関係に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(); 
+0

'query.Where(TC => tc.TypeCuisines.Any(R => r.TypeCuisineId == TYPEID));' –

答えて

0

期待されている、あなたはIEnumerableを意味し、内部Whereの結果を戻ってきています。

Whereではなく、.Any()の機能がありません。

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(); 
+0

は、それが動作どうもありがとうございました!! –