linq to entity DistinctBy && DefaultIfEmpty

根据某属性去重

使用第三方库:MoreLINQgit

Install-Package morelinq -Version 3.0.0
data.DistinctBy(x=>x.Id)

实现left join

使用DefaultIfEmpty(),是left join
没有DefaultIfEmpty(),是inner joingithub

var query2 = (
    from users in Repo.T_Benutzer
    from mappings in Repo.T_Benutzer_Benutzergruppen
        .Where(mapping => mapping.BEBG_BE == users.BE_ID).DefaultIfEmpty()
    from groups in Repo.T_Benutzergruppen
        .Where(gruppe => gruppe.ID == mappings.BEBG_BG).DefaultIfEmpty()
    select new
    {
         UserId = users.BE_ID
        ,UserName = users.BE_User
        ,UserGroupId = mappings.BEBG_BG
        ,GroupName = groups.Name
    }
);

参考资料

LEFT JOIN in LINQ to entities?c#