I have 2 tables in SQL.
Table 1 Step Id Step Name Table 2 Profile Id Step Id Completed
I would like to return the following results, even if there is no match in table 2:
Results Table1.Step Id Table1.Step Name Table2.Profile Id Table2.Completed
The way I do this in SQL is as follows:
select * from [Table 1] t1 left join [Table 2] t2 on t1.Step Id = t2.Step Id
This leads to the expected results.
When I rewrite this in 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(); }
It works, but as a JOIN, not a left join. I get only relevant results.
In addition, UserCompletion is an object that I return from this method.
I hit my head about this several times in a few days ... any help would be appreciated.
source share