我是否可以使用EF5 +批量孤立儿童记录?

时间:2013-11-07 17:23:32

标签: c# .net entity-framework-5

无论好坏,我都需要删除父记录(硬删除)并将所有孩子的parentid值设置为null。

如果我在SQL中这样做,它将是这样的:

UPDATE ChildTable SET ParentID = NULL WHERE ParentID = 1
DELETE ParentTable WHERE ID = 1

因此,在EF中他们已经连接......通过myParentEntity.ChildrenEntities

公开儿童

有没有办法在EF中批量执行此操作?当前实现是集合上的foreach并在每个集合上调用更新,这会导致可怕的SQL操作。

1 个答案:

答案 0 :(得分:0)

EF并不是SQL的直接替代品。它旨在使单个记录的使用变得容易。因此,它将为每条记录发出单独的命令。 EF不是批量操作的正确工具。

EF会自动将ParentId属性设置为null,只要您已将所有子项加载到内存中即可。但是,此方法仍将发出单独的更新。有关详细信息,请参阅EntityFramewok: How to configure Cascade-Delete to nullify Foreign Keys