Suppose we have a table like following structure
User | age| Data |Growth ------------------------ 1 |2 |43.5 |46.5 1 |2 |43.5 |49.5 1 |2 |43.5 |48.5 2 |3 |44.5 | 3 |4 |45.6 |Assuming that you still require a left join; here's how you do a left join in Linq:
var results = from data in userData
join growth in userGrowth
on data.User equals growth.User into joined
from j in joined.DefaultIfEmpty()
select new
{
UserData = data,
UserGrowth = j
};
If you want to do a right join, just swap the tables that you're selecting from over, like so:
var results = from growth in userGrowth
join data in userData
on growth.User equals data.User into joined
from j in joined.DefaultIfEmpty()
select new
{
UserData = j,
UserGrowth = growth
};
The important part of the code is the into statement, followed by the DefaultIfEmpty. This tells Linq that we want to have the default value (i.e. null) if there isn't a matching result in the other table.
No comments:
Post a Comment