Tengo el siguiente DB: Posts
que tienen un Id
, Tags
también con Id
y TagsToPosts
mesa que tiene TagsToPosts.PostId => Posts.Id
y TagsToPosts.TagId => Tags.Id
las relaciones FK. Necesito eliminar varios elementos de TagsToPosts
de la siguiente manera. Estoy creando IList<Tag> newTags
analizando una cadena. Cada etiqueta tiene su nombre. Quiero eliminar todos los artículos TagsToPosts
que apuntan a una sola publicación (TagsToPosts.PostId == mypostid
) y que apunta a Tag
con el nombre que no está en mi newTags
.LINQ a SQL por lotes borrar
Por ejemplo tengo un puesto con Id = 1
, tres etiquetas: 1 => "tag1", 2 => "tag2", 3 => "tag3"
Y ManyToMany tabla de relaciones TagsToPosts
: 1 => 1, 1 => 2, 1 => 3
Así las tres etiquetas están vinculados a mi mensaje. Después de eso, crearé un nuevo IList<Tag> newList = new List<Tag>()
analizando una cadena. newList
contiene: 0 => "tag1", 0 => "tag2"
. Ahora quiero eliminar la tercera relación de la tabla TagsToPosts porque mi nueva lista de etiquetas no contiene la etiqueta con el nombre "tag3". Entonces necesito encontrar una diferencia. Sé que puedo encontrar artículos similares usando JOIN pero ¿cómo encontrar la diferencia?
Quiero que esto suceda en una consulta DB sin iterar sobre cada elemento para eliminarlo.