title: Filter data with multiple complex clauses joined with OR operation in where function
body: <p>How is it possible to filter data based on some set of filters or expressions that should be used with <code>or</code> operation in where clause?</p>
  
  <p>For example, there is a class:</p>
  
  <pre><code>class DTOFilter
  {
      public string Domain { get; set; }
      public string Mobile { get; set; }
  }
  </code></pre>
  
  <p>It is required to filter <code>Users</code> list based on the list of the filters next way:</p>
  
  <pre><code>u=&gt;
  (u.Email.Contains(filters[0].Domain) &amp;&amp; u.PhoneNumber.StartsWith(filters[0].Mobile)) ||
  (u.Email.Contains(filters[1].Domain) &amp;&amp; u.PhoneNumber.StartsWith(filters[1].Mobile)) || 
  ...
  </code></pre>
  
  <p>Obviously that should be build automaticaly in form like:</p>
  
  <pre><code>db.Users.Where(filters.Filter&lt;Users, DTOFilter&gt;(
                          (u, f) =&gt; u.Email.Contains(f.Domain) 
                                 &amp;&amp; u.PhoneNumber.StartsWith(f.Mobile))
                .Or())
  </code></pre>