Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架:删除记录及其子记录_C#_Entity Framework - Fatal编程技术网

C# 实体框架:删除记录及其子记录

C# 实体框架:删除记录及其子记录,c#,entity-framework,C#,Entity Framework,我有一个包含3列的表:ID、Name、ParentID。 如何删除具有所有子级(n级)的特定记录 在SQL中使用Entity Framework 3.5。将数据库关系设置为级联删除,然后重新生成EDMX。@Shivesh-我建议您使用实现的一个小方法来删除子对象及其所有父对象。因此,如果家长有家长,您也可以删除他们,依此类推 另一种方法是实现一个存储过程,EntityFramework中相应的链接,并执行相同的操作 希望这会有所帮助,表是自引用的,这是应用程序逻辑,它没有在SQL定义中表示,因此

我有一个包含3列的表:
ID、Name、ParentID。

如何删除具有所有子级(n级)的特定记录


在SQL中使用Entity Framework 3.5。

将数据库关系设置为级联删除,然后重新生成EDMX。

@Shivesh-我建议您使用实现的一个小方法来删除子对象及其所有父对象。因此,如果家长有家长,您也可以删除他们,依此类推

另一种方法是实现一个存储过程,EntityFramework中相应的链接,并执行相同的操作


希望这会有所帮助,

表是自引用的,这是应用程序逻辑,它没有在SQL定义中表示,因此EF不理解它

要通过EF删除这些记录,您需要编写一个从顶部开始并加载所有子项的例程。然后将所有这些项目标记为已删除,然后调用保存更改

要删除项目,请执行以下操作:

context.DeleteObject(item);
context.SaveChanges();

大量但是cascade处理多表关系,我只得到了一个表。啊,好吧,你忘了提到棘手的部分:表是自引用的+我知道如何删除我问过的项目:“将所有这些项目标记为已删除”。我应该在删除标志中添加新列吗?没有新列,我的意思是DeleteObject将对象标记为已删除,SaveChanges然后执行实际删除。哦!好啊我计划加载所有项目,然后使用递归标记需要删除的项目。