2011-01-21 5 views
0

사용자가 구독하려는 범주를 선택할 수있는 화면이 있습니다. 그들은 0 개에서 많은 카테고리를 선택할 수 있습니다. 이들은 User ID와 카테고리 ID를 가진 UserCategory 테이블에 저장됩니다.Linq 쿼리 지원

따라서 사용자가 8 개 범주 중 2 개를 선택하면 범주 ID와 사용자 ID가있는 두 개의 행을 작성합니다.

그러나 사용자를 반환하고,이 범주 중 하나 선택 해제 한 다음 그는 이제 3 개 범주에 할당, 2 개 개의 다른 카테고리를 추가하는 경우

(그는 지금 두 가지 범주에 할당) ...

하지만 linq에서 이것을 처리하는 좋은 방법이 확실하지 않습니다 ... 어쨌든, 나는 뭔가를 할 필요가 ... UserId = UserId = UserId 및 CategoryId from int [] 통과 된 범주 ids 전달 in ... 그리고 나서 UserCategories에 삽입해야합니다 ... int [] 카테고리 ID는 이미 있지만 존재하지 않습니다.

그리고 저는 Linq에서 Entity Framework를 사용하여이를 수행해야합니다. 누군가 도와 줄 수 있습니까?

답변

2

가장 간단한 해결책은 사용자를 에서 모두 제거하고 현재 선택된 범주에의 범주를 다시 추가하는 것일 수 있습니다. 잠재적으로 동일한 정보를 제거하고 다시 추가하는 동안 코드를 더 간단하게 유지하고 코드를 단순하게 유지하는 것이 더 쉽습니다.

그래서 데이터베이스에서 현재 정보를 읽고 양식에 제시하십시오. 그런 다음 사용자가 "OK"를 누르면 데이터베이스의 현재 정보를 지우고 (물론 메모리에 복사본을 유지) 코드를 처음 사용하는 것처럼 다시 추가합니다.

+0

감사합니다. @ChrisF - 아마도 제가 사용하려고하는 옵션 일 것입니다. UserId = UserId 인 테이블에서 삭제 한 다음 범주의 int []를 기반으로 다시 추가 할 수 있습니다. 꽤 쉽고 빠르므로 그 길로 갈 수도 있습니다. 다른 방법이 있는지 기다리기 만하면됩니다. 왜냐하면 내가 감사 데이터를 저장하기 때문입니다 (날짜 링크가 만들어졌고 누가 작성했는지). 이 f}을 수행하면 모든 감사 데이터가 h 제됩니다. – Craig

+0

@cdotlister - 감사 데이터가 필요하면 상황이 복잡해집니다. 흠. 이 경우 진행 방법을 모릅니다. – ChrisF

+0

나는이 경로를지나 갔다 ... 이것은 링크 테이블이며 사용자를 선택하는 데 도움이 되었기 때문에이 경우 테이블을 감사 할 필요가 없다고 결정했다. 사용자가이를 변경할 수있는 유일한 사람입니다. 그것은 선호입니다. 그래서, 끝났어. 감사. – Craig