title: QueryOver Or with Subquery
body: <p>IHave the following NHibernate query using a subquery:</p>
  
  <pre><code>NHContext.Session.QueryOver&lt;Item&gt;()
              .WithSubquery.WhereProperty(x =&gt; x.ItemId).In(QueryOver.Of&lt;Foo&gt;().Where(x =&gt; x.AFlag).Select(x =&gt; x.ItemId))
              .WithSubquery.WhereProperty(x =&gt; x.ItemId).In(QueryOver.Of&lt;Bar&gt;().Where(x =&gt; x.AFlag).Select(x =&gt; x.Item))  
              .Future&lt;Item&gt;();
  </code></pre>
  
  <p>This runs the following SQL:</p>
  
  <pre><code>SELECT *
  FROM   item this_
  WHERE  this_.ItemId in (SELECT this_0_.ItemId as y0_
                              FROM   Foo this_0_
                              WHERE  this_0_.AFlag = 1 /* @p0 */)
  and    this_.ItemId in (SELECT this_0_.ItemId as y0_
                              FROM   Bar this_0_
                              WHERE  this_0_.AFlag = 1 /* @p0 */)
  </code></pre>
  
  <p>I would like it to use <strong>OR</strong> so for example:</p>
  
  <pre><code>SELECT *
  FROM   item this_
  WHERE  this_.ItemId in (SELECT this_0_.ItemId as y0_
                              FROM   Foo this_0_
                              WHERE  this_0_.AFlag = 1 /* @p0 */)
  or   this_.ItemId in (SELECT this_0_.ItemId as y0_
                              FROM   Bar this_0_
                              WHERE  this_0_.AFlag = 1 /* @p0 */)
  </code></pre>
  
  <p>I know I can do it in Criteria by doing something like:</p>
  
  <pre><code>var disjunction = new Disjunction();
  disjunction.Add(Subqueries.PropertyIn("ItemId", 
       DetachedCriteria.For&lt;Foo&gt;()
       .SetProjection(Projections.Property("ItemId"))
       .Add(Restrictions.Eq("AFlag", 1))
  ));
  </code></pre>
  
  <p>But was wondering if there was an easier way to do it via QueryOver, and avoiding using strings for property names.</p>
  
  <p>Thanks for any help.</p>