gpt4 book ai didi

linq to sql 批量删除

转载 作者:行者123 更新时间:2023-12-04 21:01:04 25 4
gpt4 key购买 nike

我有以下数据库:Posts其中有一个 Id , Tags还有Id , 和 TagsToPosts表有 TagsToPosts.PostId => Posts.IdTagsToPosts.TagId => Tags.Id FK 关系。
我需要从 TagsToPosts 中删除多个项目按照以下方式。
我正在创建 IList<Tag> newTags通过解析字符串。每个标签都有它的名字。我要删除所有TagsToPosts指向单个帖子( TagsToPosts.PostId == mypostid )和指向 Tag 的项目名字不在我的 newTags .

例如我有一个帖子 Id = 1 ,三个标签:1 => "tag1", 2 => "tag2", 3 => "tag3"和多对多关系表 TagsToPosts :1 => 1, 1 => 2, 1 => 3所以所有三个标签都链接到我的帖子。
之后我将创建一个新的 IList<Tag> newList = new List<Tag>()通过解析字符串。 newList包含:0 => "tag1", 0 => "tag2" .
现在我想从表 TagsToPosts 中删除第三个关系,因为我的新标签列表不包含名称为“tag3”的标签。所以我需要找到不同之处。我知道我可以使用 JOIN 找到类似的项目,但如何找到差异?

我希望这发生在一个数据库查询中,而不需要遍历每个项目来删除它。

最佳答案

你不能用 LINQ-to-SQL 做到这一点。

LINQ-to-SQL 不适合批量操作——它不能批量插入,不能批量更新,不能批量删除。集合中的每个对象都被单独处理。您可以在一个事务中完成所有操作,但对于每条记录总会有一个查询。

MSDN

更好的选择是编写一个可以执行您想要的操作的存储过程。

关于linq to sql 批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/654561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com