2009-09-30 2 views
1

나는 여러 범주의 제품으로 전자 상거래 사이트를 구축 중입니다. 이 결과로 Products 테이블, Categories 테이블 및 모든 productId/CategoryId 조합이 포함 된 ProdCat 연결/접합 테이블이 있습니다.Linq to Entities - 링크/접합 테이블에서 삭제

Linq To Entities (오늘 처음으로 사용함)를 사용하여 업데이트를 수행 할 때 나는 실망합니다. 먼저 주어진 제품 ID에 대한 모든 항목을 삭제 한 다음 모든 관련 세부 사항을 삽입해야합니다. 나는 삽입물을 가지고 있다고 생각하지만, 누군가 삭제 표시를 어떻게 할 수 있는지 보여 줄 수 있습니까?

나는 그물을 trawled했고 엔티티에 대한 Linq는 그것의 관점에서 Linq 대 Linq로 간주되지만 그것은 Linq To SQL로 배우는 것이 쉽지 않은 것으로 보인다.

도움을 주시면 감사하겠습니다.

감사합니다.

답변

0

LINQ-to-Anything에서는 삭제할 수 없습니다. LINQ to SQL이 아니라 LINQ to Entities가 아니라 LINQ to Objects가 있습니다.

는 EF에서 삭제하려면, 당신이 할 :

Context.DeleteObject(someObject); 

그래서 ID가 모두 삭제, 당신은 할 줄 :

var q = from entry in Context.SomeEntitySet 
     where entry.Product.Id == someId 
     select entry; 
foreach (var entry in q) 
{ 
    Context.DeleteObject(entry); 
} 
Context.SaveChanges(); 
1

내가 센서, sensorGroups와 오늘 비슷한 문제로 실행 둘 사이의 다 대다 관계를 작성하는 접합 표. 내가 생각해 낸 해결책은 다음과 같습니다.

var delGroup = db.SensorGroups.Single(g => g.GroupId == groupId); 

foreach (var sensor in delGroup.Sensors.ToList()) 
{ 
    delGroup.Sensors.Remove(sensor); 
} 

db.SaveChanges();