J'ai 2 tables dans SQL..NET Linq Join
Table 1
Step Id
Step Name
Table 2
Profile Id
Step Id
Completed
Je voudrais revenir les résultats suivants, même si on correspond pas au tableau 2:
Results
Table1.Step Id
Table1.Step Name
Table2.Profile Id
Table2.Completed
La façon dont je fais cela dans SQL est la suivante:
select * from [Table 1] t1
left join [Table 2] t2
on t1.Step Id = t2.Step Id
Cela produit les résultats attendus.
Quand je traduis cela en LINQ:
public static List<UserCompletion> GetStepCompletion(string category, string profileid) {
List<Step> step = GetSteps(category);
List<UserStep> userStep = GetUserSteps(category, profileId);
var q = from s in step
join us in userStep
on s.Id equals us.StepId
select new UserCompletion
{
StepId = s.Id,
Headline = s.StepName,
ProfileId = us.ProfileId
Completed= us.Completed
};
return q.ToList();
}
Il fonctionne, mais comme un JOIN pas une jointure gauche. Je n'ai que des résultats correspondants.
De même, UserCompletion est un objet que je retourne de cette méthode.
Je me suis cogné la tête pendant quelques jours ... toute aide serait appréciée.
bien fait. J'essayais d'essayer d'obtenir la syntaxe exacte :) –
Désolé, je ne voulais pas voler vos crédits :-) –
J'ai essayé cela mais je reçois une exception nullreference sur la ligne select. - code ci-dessous var q = de s à l'étape nous rejoindre dans userStep sur s.Id est égal à nous.StepId dans tmpjoin de x dans tmpjoin.DefaultIfEmpty() select new UserStepAccepted {StepId = s.Id, Headline = s.StepName , Complété = x.Complété}; – jdruid