테이블에서 여러 행을 삭제하려고합니다. 일반 SQL 서버에서 RemoveRange()를 사용하여 행을 일괄 삭제
이이 간단 할 것 :DELETE FROM Table
WHERE
Table.Column = 'SomeRandomValue'
AND Table.Column2 = 'AnotherRandomValue'
엔티티 프레임 워크 (6), 그들은 RemoveRange() 방법을 도입했습니다.
그러나 내가 제공 한 where 절을 사용하여 행을 삭제하는 대신 Entity Framework가 데이터베이스를 쿼리하여 where 절과 일치하는 모든 행을 가져오고 기본 키를 사용하여 하나씩 삭제합니다.
EntityFramework의 현재 제한 사항입니까? 또는 RemoveRange()
을 잘못 사용하고 있습니까?
db.Tables.RemoveRange(
db.Tables
.Where(_ => _.Column == 'SomeRandomValue'
&& _.Column2 == 'AnotherRandomValue')
);
테이블은 저장소 이름입니까? –
[EntityFramework.Extended] (https://github.com/loresoft/EntityFramework.Extended)에는 [일괄 삭제] 기능이 있습니다 (https://github.com/loresoft/EntityFramework.Extended/wiki/Batch-Update-and- 삭제) – paqogomez
이것을 확인하십시오 : http://stackoverflow.com/questions/2519866/how-do-i-delete-multiple-rows-in-entity-framework-without-foreach –