title: linq to sql batch delete
body: <p>I have the following DB:
  <code>Posts</code> which have an <code>Id</code>, <code>Tags</code> also with <code>Id</code>, and <code>TagsToPosts</code> table which have <code>TagsToPosts.PostId =&gt; Posts.Id</code> and <code>TagsToPosts.TagId =&gt; Tags.Id</code> FK relations.
  I need to delete multiple items from <code>TagsToPosts</code> in following way.
  I'm creating <code>IList&lt;Tag&gt; newTags</code> by parsing a string. Each tag have it's name. I want to delete all <code>TagsToPosts</code> items pointing to single post (<code>TagsToPosts.PostId == mypostid</code>) and which points to <code>Tag</code> with name which not in my <code>newTags</code>.</p>
  
  <p>For instance I have one post with <code>Id = 1</code>, three tags: <code>1 =&gt; "tag1", 2 =&gt; "tag2", 3 =&gt; "tag3"</code> And ManyToMany relations table <code>TagsToPosts</code>: <code>1 =&gt; 1, 1 =&gt; 2, 1 =&gt; 3</code>
  So all three tags are linked to my post.
  After that I'll create a new <code>IList&lt;Tag&gt; newList = new List&lt;Tag&gt;()</code> by parsing a string. <code>newList</code> contains: <code>0 =&gt; "tag1", 0 =&gt; "tag2"</code>.
  Now I want to remove third relation from table TagsToPosts because my new list of tags doesn't contain tag with name "tag3". So I need to find a difference. I know I can find similar items using JOIN but how to find difference?</p>
  
  <p>I want this to happend in one DB query without iterating over each item to delete it.</p>