J'ai une table utilisateur, une table user_items, une table user_to_group et une table de groupe.Comment faire pour convet mutliple SQL gauche rejoint à Linq-To-SQL
Comment convertir la requête SQL suivante en la requête Linq-to-sql correcte?
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
J'ai essayé d'utiliser le groupe et rejoint se joindre à DefaultIfEmpty, mais je suis incapable de retourner exactement les mêmes résultats que ma requête SQL.
Merci.
@ChrisF,
Bien sûr, je pouvais décomposer en:
select user.username, user.email, user_items.item_number from user
left join user_items on user.user_id = user_items.user_id
que j'ai en linq2sql comme:
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});
Cependant, il ne retourne pas encore tous les résultats, il devrait, et je ne peux pas voir où je vais mal.
Avez-vous essayé de casser votre SQL en plusieurs étapes et la conversion de LINQ à l'étape à la fois? Vous pourriez toujours être coincé;) mais vous auriez plus de détails à ajouter à la question et un point spécifique à poser sur. – ChrisF
Bien sûr, je pouvais décomposer en: select user.username, user.email, user_items.item_number de l'utilisateur gauche rejoindre user_items sur user.user_id = user_items.user_id que j'ai en linq2sql comme: var users = (from u dans db.users rejoindre ui dans db.user_items sur u.user_id est égal à ui.user_id dans useritems de ui dans useritems.DefaultIfEmpty() select new {user = u, item_number = useritems == null? string.Empty: useritems.FirstOrDefault().numéro d'article}); Cependant, il ne retourne toujours pas tous les résultats qu'il devrait, et je ne peux pas voir où je vais mal. – Neophyte
Si vous modifiez votre question avec cette information, il sera plus facile à comprendre. – ChrisF