내가 가진 경우, 예를 들어, 많은 - 투 - 많은 사용자와 역할 테이블 사이 "RolesToUsers"라는 매핑 테이블, 여기에 내가 그것을 할 방법 :업데이트 대다 LinqToSQL과의 관계
// DataContext is db, usr is a User entity
// newUserRolesMappings is a collection with the desired new mappings, probably
// derived by looking at selections in a checkbox list of Roles on a User Edit page
db.RolesToUsers.DeleteAllOnSubmit(usr.RolesToUsers);
usr.RolesToUsers.Clear();
usr.RolesToUsers.AddRange(newUserRolesMappings);
SQL 프로파일 러를 한 번 사용했는데 이것은 매우 지능적인 SQL을 생성하는 것으로 보입니다. 더 이상 매핑 관계에없는 행만 삭제하고 아직 관계에없는 행만 추가합니다. 그것이 맹목적으로 생각한대로 그것은 관계의 완전한 청산 및 재건을하지 않습니다.
인터넷은 놀라 울 정도로 조용하고 "LinqToSQL many-to-many"쿼리는 대부분 LinqToSQL 데이터 매퍼가 어떻게 잘 "지원"하지 않는지에 대한 기사를 보여줍니다.
다른 사람들은 어떻게 LinqToSQL을 사용하여 many-to-many를 업데이트합니까?
기술적으로, 그건 정말 당신이 수동으로 테이블을 조인 삭제되기 때문에 다 대다의 ORM에 해당하지 않습니다. ORM에서 m2m에 대한 "적절한"지원은 User 객체가 "Roles"라는 속성 (또는 컬렉션)을 갖도록 모델링하므로 ORM은 커버 아래에서 조인 테이블을 편집 할 수 있습니다. – RobS
적어도 내 해석은 어쨌든 .. HIH – RobS
@RobS : agree. 또한 내 해석 : 특정 사용자 한 명만 신경 쓴다면 '사용자'개체 '역할'컬렉션을 살펴볼 수 있습니다. 하나의 특별한 역할에 관심이 있다면, '역할'객체의 사용자 컬렉션을 살펴보십시오. ORM이라는 아이디어가 DB 물건을 숨기고 개체를 사용하는 것처럼 사용할 수 있습니다. –