[
https://issues.apache.org/jira/browse/IGNITE-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16042690#comment-16042690
]
Sergey Stronchinskiy commented on IGNITE-5451:
--
As for me LINQ method syntax you need to use in EFis too cumbersome, and not
very obvious and I`ve seen some complaints about it My proposal would be to add
specific LINQ method for {{CacheQueryable}} like {{LeftOuterJoin(roles,
person.Value.RoleId, role => role.Key,...)}} may be alongside with implementing
handling for {{GroupJoin}}.
Also argument about LINQ to objects doesn't seem to me very relevant because
LINQ to objects implementation has some design restrictions from language
itself and OOP paradigm, so not all SQL query syntax can be easily made
compliant with it(and our main goal is to generate correct SQL).
> .NET: Improve outer joins in LINQ
> -
>
> Key: IGNITE-5451
> URL: https://issues.apache.org/jira/browse/IGNITE-5451
> Project: Ignite
> Issue Type: Improvement
> Components: platforms
>Reporter: Pavel Tupitsyn
> Labels: .NET, LINQ
> Fix For: 2.2
>
>
> Currently outer joins are supported in a convoluted way, via a regular join
> with {{DefaultIfEmpty()}} call:
> {code}
> var res = persons.Join(roles.DefaultIfEmpty(),
> person => person.Value.RoleId, role => role.Key,...)
> {code}
> This is not consistent with LINQ to objects, Entity Framework and other
> things out there, and unexpected for the users.
> Instead we should support {{GroupJoin}} properly, see
> https://stackoverflow.com/questions/584820/how-do-you-perform-a-left-outer-join-using-linq-extension-methods
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)