title: Linq query for NOT IN on joined table
body: <p>I'm trying to write a semi convoluted query :- </p>
  
  <p>The query should select a random selection of rows from a table which do not have a matching entry in a linking table. I.e</p>
  
  <pre><code>dishes
  ----
  id
  name
  
  
  food
  ----
  id
  name
  
  foodInDishes
  ----
  food_id
  dish_id
  </code></pre>
  
  <p>So what I am trying to accomplish is select the top most 10 rows where a user does not have a specific food. So </p>
  
  <p>"Give me 10 dishes that I can make which do not contain carrots"</p>
  
  <p>In C# I have a <code>List&lt;int&gt;</code> of foods to avoid. So far I have got too :- </p>
  
  <pre><code>List&lt;int&gt; oFoodsToAvoid = new List&lt;int&gt;();
  var oDishes= db.dishes.OrderBy(r =&gt; Guid.NewGuid()).Take(10);
  </code></pre>
  
  <p>However I am struggling with the foods to avoid where clause. The problem I am facing is because it's a child table (i.e items.foods.id ). Any suggestions on what the where clause should contain?</p>