title: Simplify LINQ query
body: <p>I have the following query:</p>
  
  <pre><code>db.ObjectTags.Where(c =&gt; 
      c.TagID == tagID &amp;&amp; 
      (!db.DeletedObjects.Any(d=&gt; d.ForObjectTypeID == c.ForObjectTypeID &amp;&amp; d.ForObjectID == c.ForObjectID)
      || !db.DeletedObjects.SingleOrDefault(d =&gt; d.ForObjectTypeID == c.ForObjectTypeID &amp;&amp; d.ForObjectID == c.ForObjectID).Deleted)
  )
  </code></pre>
  
  <p>Its goal is to return objects that are not in a deleted state.</p>
  
  <p>The table <code>DeletedObjects</code> has two states:</p>
  
  <ul>
  <li>A record doesn't exist (not deleted)</li>
  <li>A record exists with a <code>deleted (bool)</code> value</li>
  </ul>
  
  <p>I need to query where either the record doesn't exist, or if it does the <code>deleted</code> value is <code>false</code>.</p>
  
  <p>Is there any way to condense that statement eg with <code>SingleOrDefault()</code>?</p>