假设我有LINQ查询,例如:
var authors = from x in authorsList
where x.firstname == "Bob"
select x;
Run Code Online (Sandbox Code Playgroud)
鉴于它authorsList是类型List<Author>,我如何删除查询返回的Author元素?authorsListauthors
或者换句话说,如何删除所有名字等于Bob的名字authorsList?
注意:这是用于问题目的的简化示例.
我有以下DB:
Posts它有一个Id,Tags也有Id,和TagsToPosts有TagsToPosts.PostId => Posts.Id和TagsToPosts.TagId => Tags.IdFK关系的表.我需要以TagsToPosts下列方式删除多个项目.我正在IList<Tag> newTags通过解析字符串来创建.每个标签都有它的名字.我想删除所有TagsToPosts指向单个帖子(TagsToPosts.PostId == mypostid)的项目,以及指向Tag不在我的名字的项目newTags.
例如,我有一个帖子Id = 1,有三个标签:1 => "tag1", 2 => "tag2", 3 => "tag3"和ManyToMany关系表TagsToPosts:1 => 1, 1 => 2, 1 => 3
所以这三个标签都链接到我的帖子.之后我将IList<Tag> newList = new List<Tag>()通过解析字符串来创建一个新的.newList包含:0 => "tag1", 0 => "tag2".现在我想从表TagsToPosts中删除第三个关系,因为我的新标签列表不包含名为"tag3"的标签.所以我需要找到一个区别.我知道我可以使用JOIN找到类似的项目,但如何找到差异?
我想在一个数据库查询中发生这种情况而不迭代每个项目以删除它.