2012-07-14 2 views
1

가능한 중복으로 테이블에서 여러 행을 제거 :
EF Code First Delete Batch From IQueryable<T>?LINQ 쿼리

내가 LINQ 쿼리와 테이블에서 여러 행을 제거하는 방법

. 당신이,

"Delete FROM table WHERE ..." 
+0

이 LINQ-to-SQL, LINQ-to-Entities ... other입니까? 둘 중 하나를 사용하여 메소드를 구현하는 방법은 없지만이를 수행 할 확장 메소드가 있습니다 (그러나 원하지 않는 부작용이있을 수 있음). – Ocelot20

+0

LINQ to Entities – Hasan

+0

비슷한 질문을 조금 전에 물었고 여기에 정보에 대한 답변을 얻었습니다. http://stackoverflow.com/questions/8538899/ef-code-first-delete-batch-from-iqueryablet – Ocelot20

답변

2

당신은 그위한 loop이 필요합니다

나는 같은 코드가 있습니다

var subjects = (from sub in db.Subjects select sub) 
       .Where(sub => sub.title.StartsWith("ab")); 

나는 SQL에서와 같이 하나의 명령으로 내 테이블에서 모든 과목을 삭제하려면 모든 엔티티를 하나씩 제거하기 위해 불행히도 Linq에서 SQL 또는 Entity Framework로 대량 삭제와 같은 기능은 없습니다.

foreach(var subject in subjects) 
{ 
    db.Subjects.Remove(subject); 
} 
db.SubmitChanges(); 
+0

방법이 없습니다 모든 togther를 제거 하시겠습니까? – Hasan

+0

Entity Framework 및 Linq에 대해 Linq를 사용하는 방법은 없다고 확신하지만 db.Execute()를 사용하여 모든 명령을 실행할 수 있으며 거기에 삭제 쿼리를 쓸 수 있습니다. –

+0

SQL 쿼리를 사용하고 싶지는 않지만 하나씩 제거하는 것이 효율적이지 않습니다. – Hasan