2011-08-12 3 views
2

코드 우선 EF 4와 DbContext 및 DbSet <> 및 POCO와 DataAnnotations를 사용합니다. 나는이 새로운 오전 내 후 질문에 대한 답변을 찾을 수 없습니다 :Code-First EF로 데이터베이스에서 여러 항목을 삭제하는 방법 4.1

어떻게 내가 처음 LINQ와 항목을 선택한 다음 루프를하고 각 반복에 Remove(item)를 호출하지 않고 직접 DB에서 여러 항목을 삭제할 수 있습니까? 그건 나에게 어리 석다.

여기에 관련된 모든 참조는 내 DbContext에없는 DeleteOnSubmit(item)과 같은 존재하지 않는 기능을 나타냅니다. 또한 하나의 항목 만 삭제합니다.

더 좋은 방법이 있습니까?

답변

4

DeleteOnSubmitDataContext 클래스의 함수 = Linq에 - 투 - SQL

요 당신이 그것을 삭제하기 전에 항목을로드 할 필요가 없습니다. 열쇠를 알고 있으면 충분합니다. 이런 식으로 뭔가 작업을해야합니다 :

var item = new Item { Id = someId }; 
context.Items.Attach(item); 
context.Items.Remove(item); 
context.SaveChanges(); 

또는

var item = new Item { Id = someId }; 
context.Items.Attach(item); 
context.Entry(item).State = EntityState.Deleted; 
context.SaveChanges(); 

이 삭제 될 각 단일 항목을 지정하지 않고 (폭포를 제외하고 삭제) EF 여러 항목을 삭제하는 방법은 없습니다. 여러 항목을 삭제하려면 직접 당신은 메모리에 객체를 필요에 따라 한 번에 여러 개의 삭제를 지원하지 않습니다

context.Database.ExecuteSqlCommand("DELETE ..."); 
0

엔티티 프레임 워크와 같은 SQL을 사용해야합니다. 루프를 반복해야합니다.

관련 문제