You can use a simple nested lambda to achieve this. If oFoodsToAvoid
is large, you could probably sort it before querying and then use Array.BinarySearch()
in your nested lambda:
List<int> oFoodsToAvoid = new List<int>();
var oDishes= db.dishes.Where(d => !d.foods.Any(df => oFoodsToAvoid.Any(arr => arr == df.food_id)))
.OrderBy(r => Guid.NewGuid()).Take(10);