You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Sergey Stronchinskiy (JIRA)" <ji...@apache.org> on 2017/06/08 13:28:19 UTC

[jira] [Commented] (IGNITE-5451) .NET: Improve outer joins in LINQ

    [ https://issues.apache.org/jira/browse/IGNITE-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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)