gpt4 book ai didi

c# - 删除 LINQ to EF 中的关联数据

转载 作者:太空狗 更新时间:2023-10-30 00:06:16 25 4
gpt4 key购买 nike

我是 LINQ 和 EF 的新手,我有一个关于我正在开发的论坛的快速问题。本论坛有主题,每个主题都有相关的回复。我假设 EF 会看到约束,并且在删除主题时也会删除关联的回复。相反,它会抛出约束错误。有没有一种简单的方法可以删除所有关联的回复,而无需遍历它们并将每个回复标记为删除?

例如,在 SQL 中我会做这样的事情:

DELETE FROM topic_replies WHERE TopicID='999'
DELETE FROM topics where TopicID='999'

但是在 EF 中,我知道的唯一方法是:

Topic topic = //LINQ to get topic.
foreach (Reply reply in topic.Replies)
{
dbEntity.Replies.DeleteObject(reply);
}
dbEntity.Topics.DeleteObject(topic);

如果这是我必须做的,我想这很好。只是好奇是否有更好的方法。提前致谢。

最佳答案

您可以在 EF 模式的所有者对象中设置级联删除。

<Association Name="FK_ItemChildren_Item">
<End Role="Item" Type="Model.Store.Item" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="ItemChildren" Type="Model.Store.ItemChildren"
Multiplicity="*" />
<ReferentialConstraint>
..
</ReferentialConstraint>
</Association>

http://codepolice.net/2008/12/16/cascade-delete-in-entity-framework/

关于c# - 删除 LINQ to EF 中的关联数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4619373/

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