title: A Linq ContainsAll Method?
body: <p>I have a list of items that can each have multiple keywords so I have three tables</p>
  
  <pre><code>Item -&gt; ItemKeyword &lt;- Keyword
  </code></pre>
  
  <p>I want to return all Items where the Item has all keywords in a list. so for example:</p>
  
  <pre><code>Item 1 has keywords "Rabbit", "Dog", "Cat" 
  Item 2 has keywords "Rabbit", Hedgehog", "Dog"
  </code></pre>
  
  <p>I want to return only those items that have both "Dog" and "Cat" as keywords.</p>
  
  <p>I cant use a contains query as that will essentially return all those items with "Dog" OR "Cat".</p>
  
  <p>So I guess what I am asking for is if there is such a thing called ContainsAll in linq, or if there is some way I can perform this functionality.</p>
  
  <p>I have attempted to use Except and Intersect but I cant seem to get the correct results.</p>
  
  <p>I would like to have a single query so that it is easy to compile the query but this is not a dealbreaker.</p>
  
  <p>I am using:</p>
  
  <ol>
  <li>Dot Net 4.5</li>
  <li>Visual Studio 2012</li>
  <li>C#</li>
  <li>Linq</li>
  <li>Entity Framework</li>
  <li>Sql Server Ce 4.0</li>
  </ol>