0

私は SQL 中毒者であり、EF の構文は直感的ではありません。

私はレストランテーブルとフードテーブルを持っています。食品のタイプが文字列リストのカテゴリに含まれているレストランと食品が必要です。これは、私が望むものを大まかに表すSQLです。

SELECT r.*, f.*
FROM Restaurant R
  JOIN food f on f.RestaurantID = r.RestaurantID
WHERE f.Type IN ("Awesome", "Good", "Burrito")

そのSQLに変換したいコードは次のとおりです。

List<string> types = new List<string>() { "Awesome", "Good", "Burrito"};
var dbrestaurants = from d in db.Restaurants
                    .Include("Food")
                    //where Food.Categories.Contains(types)//what to put here?
                    select d;
4

3 に答える 3

1

試す

var restaurants = db.Restaurants.Where(r => types.Contains(r.Food.Type));
于 2012-04-23T22:00:36.327 に答える
0
where Food.Categories.Any(c => types.Contains(c.Name))
于 2012-04-23T21:48:31.750 に答える
0

これを試して:

var dbRestaurants = 
from r in db.Restaurants
join f in db.Foods on r.RestaurantId equals f.RestaurantId
where types.Any(foodType => foodType == f.Type)
select r;
于 2012-04-24T14:08:30.833 に答える