Tôi có DB sau: Posts
có một Id
, Tags
cũng với Id
, và TagsToPosts
bảng có TagsToPosts.PostId => Posts.Id
và TagsToPosts.TagId => Tags.Id
quan hệ FK. Tôi cần xóa nhiều mục từ TagsToPosts
theo cách sau. Tôi đang tạo IList<Tag> newTags
bằng cách phân tích chuỗi. Mỗi thẻ có tên của nó. Tôi muốn xóa tất cả các mục TagsToPosts
trỏ đến một bài đăng (TagsToPosts.PostId == mypostid
) và trỏ tới Tag
có tên không nằm trong số newTags
của tôi.LINQ to batch sql xóa
Ví dụ tôi có một bài với Id = 1
, ba thẻ: 1 => "tag1", 2 => "tag2", 3 => "tag3"
Và ManyToMany quan hệ bảng TagsToPosts
: 1 => 1, 1 => 2, 1 => 3
Vì vậy, tất cả ba thẻ được liên kết đến bài viết của tôi. Sau đó tôi sẽ tạo một IList<Tag> newList = new List<Tag>()
mới bằng cách phân tích chuỗi. newList
chứa: 0 => "tag1", 0 => "tag2"
. Bây giờ tôi muốn loại bỏ mối quan hệ thứ ba khỏi bảng TagsToPosts vì danh sách thẻ mới của tôi không chứa thẻ có tên "tag3". Vì vậy, tôi cần phải tìm một sự khác biệt. Tôi biết tôi có thể tìm thấy các mặt hàng tương tự bằng cách sử dụng JOIN nhưng làm thế nào để tìm sự khác biệt?
Tôi muốn điều này xảy ra trong một truy vấn DB mà không cần lặp lại từng mục để xóa nó.