使用过滤器清除相关表格属性

问题描述 投票:0回答:1

我有一个名为Parent的表,它与一个名为Child的表具有一对多关系。在EF模型中,Parent是具有类型为Child的称为ICollection<Child>的属性的实体。

我可以在程序中执行此操作,以删除所有相关的Child元素,然后重新填充它:

Parent entity = context.Parent.FirstOrDefault(someCondition);
entity.Child.Clear();  // remove all related child elements (in database, only data in the associated table is removed)
entity.Child.Add(newChildEntity)
context.SaveChanges();

但是,如果我需要使用条件删除Child元素怎么办?

我尝试过:

entity.Child.Where(otherCondition).Clear();

但是由于Where方法返回了IEnumerable<Child>,所以我不能使用Clear()方法。

[其他尝试是在调用ICollection<Child>方法之前强制转换为Clear,但是引发了异常提示无法强制转换。

需要任何帮助吗?

[也许我可以得到entity.Child.Where(otherCondition),然后使用ForEach循环将Remove所有元素,但是,除了提供非常差的性能,我认为这样,Child元素也被删除,不仅是关系数据。

Jaime

我有一个名为Parent的表,它与一个称为Child的表具有一对多关系。在EF模型中,Parent是一个实体,其属性称为ICollection 类型的子级。我...

c# entity-framework-6
1个回答
-1
投票

这种方式:

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.