title: Find entities that match all list elements in a list
body: <p>I have the following (simplified) many-to-many relationship: </p>
  
  <pre><code>public class Tag
  {
      public string Name { get; set; }
      public IList&lt;Product&gt; Products { get; set; }
  }
  
  public class Product
  {
      public IList&lt;Tag&gt; Tags { get; set; }
  }
  </code></pre>
  
  <p>The following snippet returns all products that match <strong>at least one</strong> tag:</p>
  
  <pre><code>var searchTags = new[] {"tag1", "tag3"};
  Tag tagAlias = null;
  var query = _session.QueryOver&lt;Product&gt;()
                 .JoinAlias(p =&gt; p.Tags, () =&gt; tagAlias)
                 .WhereRestrictionOn(() =&gt; tagAlias.Name).IsIn(searchTags)
                 .List();
  </code></pre>
  
  <p>How can I achive to get a list that contains products which have <strong>all</strong> tag names?</p>