Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 是否可以指定也应在Linq中与其父对象一起删除的子对象?_C#_Linq_Entity Framework - Fatal编程技术网

C# 是否可以指定也应在Linq中与其父对象一起删除的子对象?

C# 是否可以指定也应在Linq中与其父对象一起删除的子对象?,c#,linq,entity-framework,C#,Linq,Entity Framework,为了确保删除所有子元素,我目前必须执行以下操作: ComponentType type = db.ComponentTypes.First(t => t.ID == Convert.ToInt32(button.CommandArgument)); db.RigActions.DeleteAllOnSubmit(type.Components.SelectMany(c => c.RigActions)); db.Components.DeleteAllOnSubmit(type.Co

为了确保删除所有子元素,我目前必须执行以下操作:

ComponentType type = db.ComponentTypes.First(t => t.ID == Convert.ToInt32(button.CommandArgument));
db.RigActions.DeleteAllOnSubmit(type.Components.SelectMany(c => c.RigActions));
db.Components.DeleteAllOnSubmit(type.Components);
db.ComponentTypes.DeleteOnSubmit(type);
db.SubmitChanges();
出于可维护性的目的,我(或其他开发人员)可能会在删除父元素(或在本例中为父元素的父元素)时忽略所有必要的清理,这让我感到害怕


Linq是否有任何类型的依赖属性可以设置,以便在删除某个组件类型时,它会删除所有组件记录以及属于每个组件记录的所有操作?

我不确定它是否可以在Linq中完成(可能可以)。不过,如果您在数据库上定义了级联删除,就容易多了。这样,子记录将自动删除,您无需担心忘记任何内容

本文可能会为您提供更多信息

本文是关于在EF中设置级联删除的


Linq是一种查询语言,它没有内在的数据管理功能。这更像是一个实体框架问题,但是如果在数据库中正确设置了引用完整性,则在不删除其子项的情况下,您永远无法删除父项。lINQ只是您正在使用的查询语言。您是在使用LINQtoSQL(.dbml)LINQtoEntities(.edmx)还是其他什么?