2010-03-08 4 views
0

일부 엔터티 DeleteOnSubmit()을 표시하는 가장 좋은 방법은 무엇입니까? 삭제를위한 컨텍스트를 확인하고 말할 수있는 방법이 있습니까?LINQ to SQL 엔터티 삭제시 제출시 삭제

예 : 엔티티 집합 <을 참조하는 엔티티가 있고 엔티티 집합 <> 8 개 엔티티 중 4 개가 삭제됩니다. 변경 사항을 제출할 때 그 4에 DeleteOnSubmit()을 말하고 싶습니다! 이 시나리오는 단일 EntityRef <에서도 재생해야합니다.

물론 DataContext는 다른 레이어에 있으므로 ... 잡아, 변경하고, 다시 보내는 작업입니다.

감사합니다.

답변

0

DeleteAllOnSubmit()을 살펴보십시오. 이 메서드는 삭제할 엔터티 목록을 전달합니다.

+0

삭제를 위해 모든 EntitySet을 전달할 수 없으며, 모든 항목을 잃어 버릴 수 있습니다. 다른 목록의 엔티티 ID를 추적하여 해당 항목을 DeleteOnSubmit()에 사용한다는 의미일까요? –

1

아키텍처에 대한 설명에 따라 답변하기가 어렵습니다. 계층화 된 접근법을 사용한다고해서 반드시 DeleteOnSubmit에 전화 할 수 없다는 것을 의미하지는 않습니다. 내가 감싸는 자신 만의 메서드를 호출하면됩니다.

물론 업데이트 루틴에서 DataContext 개체를 인스턴스화하지 않는 한. 이 경우에는 다른 것을해야합니다. 데이터 레이어는 MarkForDelete()과 같은 메서드를 노출 할 수 있습니다.이 메서드는 컬렉션에 엔터티를 추가 한 다음 수집 된 항목을 반복하여 데이터 소켓에 첨부 한 다음 실제 DeleteAllOnSubmit() 호출을 수행하는 별도의 SubmitChanges()을 노출합니다.

그건 사실 난 전체 기업 직렬화/deserialization/fraught with peril 것 같습니다 다시 연결 문제가 생겨본 적이있다. 나는 보통 목록에서 기본 키를 수집하고 엔터티를 선택하고 다시 삭제합니다. 정말 더 이상 일이 아닙니다.

+0

어제이 접근 방식을 사용했습니다 ... 답장을 위해 고맙습니다. –