2012-03-15 2 views
0

나는 이것을 가지고있다.nhibernate에서 테이블 관계 참조를 업데이트하는 가장 좋은 방법은 무엇입니까?

한 국가에는 많은 제품이 있고 한 제품에는 많은 국가가 존재할 수 있습니다.

이제 제품 A는 그들이 캐나다에서 제품 A를 판매를 중단 어떤 이유로 지금

US 
Canada 

있습니다. 현재 제품 A가 더 이상 캐나다에 없으므로 제품 A를 업데이트하여 관계를 제거하는 방법은 무엇입니까?

ProudctA.Countries.Clear()과 같은 목록을 정리해야합니까? 그런 다음 다시 선택한 국가를 추가하십시오.

ProductA.Countries.Add(loadCountry(id)) // this would be a loop and I would be loading the ids from the select countries. 

또는 내가 몇 가지 방법을 알아낼 것을 삭제 또는 무언가 같이 변경하고 불렀다해야합니까?

서버에서 Guid의 목록을 얻고 있습니다. 사용자는 선택 목록 상자를보고 국가를 선택하기 만하면됩니다.

제품을 편집 할 때 미국과 캐나다가 모두 선택되었지만 캐나다를 선택 취소하여 US Guid 만 서버로 다시 전송되었습니다. 당신이 이미로드 된 이후

답변

0

내가 그러나이

countriesToRemove = productA.Countries.Where(c => !selectedIds.Contains(c.Id)).ToList(); 

foreach(var country in countriesToRemove) 
{ 
    productA.Countries.Remove(country); 
} 

같은 것을 할 것 (세션 캐시에) 및 링크 테이블 항목을 제거하고 아무것도 제거하지 않을 경우에만 문제가 것 어쨌든 삽입됩니다.

관련 문제