2011-12-05 2 views

답변

3

어떤 버전의 Entity Framework를 사용하고 있습니까?

Entity Framework 4.1 이상을 사용하고 DbContext 클래스를 사용하는 경우 ExecuteSqlCommand() 메서드를 사용하여 데이터베이스에 DELETE 문을 보낼 수 있습니다. http://blogs.msdn.com/b/adonet/archive/2011/02/04/using-dbcontext-in-ef-feature-ctp5-part-10-raw-sql-queries.aspx을 참조하십시오 (데이터베이스에 원시 명령 전송 섹션 참조). 당신이 엔티티 프레임 워크 4.0 (대신 DbContext의) ObjectContext를를 사용하는 경우 유사한 ExecuteStoreCommand 방법 (http://msdn.microsoft.com/en-us/library/ 거기

DbContext ctx = ... get your DbContext somehow... 
ctx.Database.ExecuteSqlCommand("DELETE FROM Foo WHERE FooID = 17"); 

:이 같이 보일 것입니다 system.data.objects.objectcontext.executestorecommand.aspx).

19

당신은 더미 개체를 사용할 수 있습니다

var entity = new YourEntity { Key = yourKey }; 
context.Entities.Attach(entity); 
context.Entities.DeleteObject(entity); 
context.SaveChanges(); 
+7

EF 5.0부터 context.Entities.Remove (entity);를 사용해야합니다. 대신 context.Entities.DeleteObject (엔터티); – Gabriel

1

당신이이 글을 읽고있는 경우에 따라, 어떤 해킹을 구현하기 전에 this ticket의 상태를 확인합니다.

+0

흥미로운 제안입니다. 가능한 경우 투표하십시오. – ygoe

관련 문제