Ho il seguente DB: Posts
che hanno un Id
, Tags
anche con Id
, e TagsToPosts
tavolo che hanno TagsToPosts.PostId => Posts.Id
e TagsToPosts.TagId => Tags.Id
rapporti FK. Ho bisogno di cancellare più oggetti da TagsToPosts
nel modo seguente. Sto creando IList<Tag> newTags
analizzando una stringa. Ogni tag ha il suo nome. Voglio eliminare tutti gli articoli TagsToPosts
che puntano al singolo post (TagsToPosts.PostId == mypostid
) e che punta a Tag
con nome che non è nel mio newTags
.LINQ to SQL batch cancellare
Per esempio ho un post con Id = 1
, tre tag: 1 => "tag1", 2 => "tag2", 3 => "tag3"
E tabella relazioni ManyToMany TagsToPosts
: 1 => 1, 1 => 2, 1 => 3
Così tutti e tre i tag sono legati al mio post. Successivamente creerò un nuovo IList<Tag> newList = new List<Tag>()
analizzando una stringa. newList
contiene: 0 => "tag1", 0 => "tag2"
. Ora voglio rimuovere la terza relazione dalla tabella TagsToPosts perché il mio nuovo elenco di tag non contiene tag con nome "tag3". Quindi ho bisogno di trovare una differenza. So che posso trovare oggetti simili usando JOIN ma come trovare la differenza?
Voglio che questo accada in una query DB senza iterare su ogni elemento per eliminarlo.