사용자 테이블, user_items 테이블, user_to_group 테이블 및 그룹 테이블이 있습니다.Linq-To-SQL에 여러 개의 SQL 왼쪽 조인을 결합하는 방법
다음 SQL 쿼리를 올바른 Linq-to-SQL 쿼리로 변환하는 방법은 무엇입니까? 내가 그룹을 사용하여 시도했다
select user.username, user.email, user_items.item_number, item_types.desc, [group].name from user
left join user_items on user.user_id = user_items.user_id
left join item_types on user_items.item_type_id = item_types.item_type_id
left join user_to_group on user.user_id = user_to_group.user_id
left join [group] on user_to_group.group_id = [group].group_id
조인 및 DefaultIfEmpty에 합류,하지만 내 SQL 쿼리와 동일한 결과를 반환 할 수 없습니다입니다.
감사합니다. 내가으로 linq2sql에있는
select user.username, user.email, user_items.item_number from user
left join user_items on user.user_id = user_items.user_id
: 그러나
var users = (from u in db.users
join ui in db.user_items on u.user_id equals ui.user_id into useritems from ui in useritems.DefaultIfEmpty()
select new { user = u, item_number = useritems == null ? string.Empty : useritems.FirstOrDefault().item_number});
, 그것은 여전히 반환하지 않습니다
@ChrisF,
물론, 나는에 그것을 무너 뜨리는 수 결과가 있어야하며 어디서 잘못 될지 알 수 없습니다.
은 여러 단계로 당신의 SQL을 깨고 한 번에 단계에 LINQ로 전환 시도? 여전히 붙어있을 수 있습니다.)하지만 질문에 추가 할 세부 정보와 질문 할 특정 지점이 있습니다. 물론 – ChrisF
, 나는에 그것을 무너 뜨리는 수 : VAR : 선택 user.username, user.email, 사용자 에서 user_items.item_number 내가으로 linq2sql에있는 user.user_id = user_items.user_id 에 user_items 가입 왼쪽 users = (db.users의 u에서 은 u.user_id의 db.user_items에있는 ui와 useritems의 ui.user_id와 같음 useritems.DefaultIfEmpty()에있는 ui의 새로운 {user = u, item_number = useritems == null을 선택 하시겠습니까? string.Empty : useritems.FirstOrDefault().품목 번호}); 그러나 여전히 모든 결과를 반환하지 않으며 어디에서 잘못 될지 알 수 없습니다. – Neophyte
이 정보로 질문을 편집하면 이해하기 쉽습니다. – ChrisF