This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var query2 = context.Person | |
| .LeftJoin(context.Pet, | |
| person => person, | |
| pet => pet.Owner, | |
| row => new { row.Outer.FirstName, row.Outer.LastName, PetName = row.Inner.Name }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static class QueryableExtensions { | |
| public static IQueryable<TResult> LeftJoin<TOuter, TInner, TKey, TResult> ( | |
| this IQueryable<TOuter> outer, | |
| IQueryable<TInner> inner, | |
| Expression<Func<TOuter, TKey>> outerKeySelector, | |
| Expression<Func<TInner, TKey>> innerKeySelector, | |
| Expression<Func<JoinResult<TOuter, TInner>, TResult>> resultSelector) { | |
| var result = outer | |
| .GroupJoin(inner, outerKeySelector, innerKeySelector, (outer1, inners) => new { outer1, inners = inners.DefaultIfEmpty() }) | |
| .SelectMany(row => row.inners, (row, inner1) => new JoinResult<TOuter, TInner> { Outer = row.outer1, Inner = inner1 }) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var query = context.Person | |
| .GroupJoin(context.Pet, | |
| person => person, | |
| pet => pet.Owner, | |
| (person, pets) => new { person, pets = pets.DefaultIfEmpty() }) | |
| .SelectMany(group => group.pets, | |
| (row, pet) => new { row.person.FirstName, row.person.LastName, PetName = pet.Name }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class Person { | |
| public int Id { get; set; } | |
| public string FirstName { get; set; } | |
| public string LastName { get; set; } | |
| } | |
| public class Pet { | |
| public int Id { get; set; } | |
| public string Name { get; set; } | |
| public Person Owner { get; set; } |