2012-06-15 2 views
0
내가 엔티티를 삭제하려고

테이블삭제 테이블 - - mvc3

이 코드입니다. 또는 아무것도 수행하지 마십시오 .. db는 DbContext 개체를 상속받습니다.

나는 해결책

foreach (var item in db.Sessions) 
{ 
    db.Sessions.Remove(item); 
} 

db.SaveChanges(); 

를 발견했습니다하지만 확실히 프로그래머에게 더 좋은 방법입니다.

감사합니다.

+0

유효한 SQL이 아닙니다. – SLaks

답변

1

SqlQuery :

당신은 테이블에서 모든 행을 삭제하려는 경우,이 질문은 이것의 중복 테이블이 다른 뭔가가 필요합니다

db.DataBase.ExecuteSqlCommand("drop table sessions"); 
: 어떤 DDL/DML 쿼리를 실행할 수있는 DbContext.Database 재산의 사용으로

나는 또한 생식을 만들었으며 그것은 SQL Server2008의와 EF4.3.1와 함께 잘 작동 것 :

using (var db = new EFRepros()) 
{ 
    db.Sessions.Add(new Session() { Name = "Test1" }); 
    db.Sessions.Add(new Session() { Name = "Test2" }); 
    db.Sessions.Add(new Session() { Name = "Test3" }); 
    db.SaveChanges(); 
    Console.WriteLine(db.Sessions.Count()); // Output: 3 
    db.Database.ExecuteSqlCommand("delete from sessions"); 
    //db.Database.ExecuteSqlCommand("truncate table sessions"); //this also works 
    Console.WriteLine(db.Sessions.Count()); // Output: 0 
} 

참고 : EF 기본 사용 plurar 테이블 이름으로 당신이 세션를 사용할 필요가 있도록.

+0

삭제하고 싶지 않습니다. 삭제/잘라내기를 원합니다. "토큰 라인 번호 = 1, 토큰 라인 오프셋 = 1, 토큰 오류 = 잘라 내기]" – Nir

+0

'db.DataBase.ExecuteSqlCommand (" DELETE FROM session "); – nemesv

+0

예. 나는 – Nir

1

테이블을 삭제하려고합니까? 그렇다면 SqlQuery 호출을 통해 호출 할 수 없습니다. 이름에서 알 수 있듯이 해당 메서드는 쿼리를 엄격하게 처리하기 때문입니다. 제거하려는 경우 이름 쿼리를 실행하는 경우에만 의미로

Linq to Sql: How to quickly clear a table

+0

ExecuteCommand 함수가 없습니다. – Nir