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

2017-06-08 Thread Pavel Tupitsyn (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16042694#comment-16042694
 ] 

Pavel Tupitsyn commented on IGNITE-5451:


{{LeftOuterJoin}} sounds reasonable to me, certainly more readable than 
{{GroupJoin}}.
However, I think we should implement {{GroupJoin}} support as well, because 
that is what most users would expect. Also some people may be migrating their 
queries.

> .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)


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

2017-06-08 Thread Sergey Stronchinskiy (JIRA)

[ 
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)