У меня есть пользовательская таблица, таблица user_items, таблица user_to_group и таблица группы.
Как преобразовать следующий запрос 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.
Спасибо.
@ ChrisF,
Конечно, я могу разбить его на:
select user.username, user.email, user_items.item_number from user
left join user_items on user.user_id = user_items.user_id
Что у меня есть в linq2sql как:
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});
Тем не менее, он все еще не возвращает все результаты, которые он должен, и я не вижу, где я иду не так.