[ 
https://issues.apache.org/jira/browse/IGNITE-14343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-14343:
------------------------------------
    Description: 
Ignite LINQ provider allows anonymous type projections:
{code}
query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name});
{code}

However, it does not work with a custom class:
{code}
query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name});
{code}

throws exception:
{code}
System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' (type: 
System.Linq.Expressions.MemberInitExpression) is not supported.
{code}


Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this 
scenario. See linked SO page for more details - there is a proposed fix as well.

  was:
Ignite LINQ provider allows anonymous type projections:
{code}
query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name});
{code}

However, it does not work with a custom class:
{code}
query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name});
{code}

throws exception:
{code}
System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' (type: 
System.Linq.Expressions.MemberInitExpression) is not supported.
{code}


Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this 
scenario.


> .NET: Allow arbitrary MemberInit projections in LINQ
> ----------------------------------------------------
>
>                 Key: IGNITE-14343
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14343
>             Project: Ignite
>          Issue Type: Improvement
>          Components: platforms
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET, LINQ
>             Fix For: 2.11
>
>
> Ignite LINQ provider allows anonymous type projections:
> {code}
> query.Select(emp => new {Id = emp.Key, Name = emp.Value.Name});
> {code}
> However, it does not work with a custom class:
> {code}
> query.Select(emp => new Foo {Id = emp.Key, Name = emp.Value.Name});
> {code}
> throws exception:
> {code}
> System.NotSupportedException : The expression 'new Foo() {Id = [x].Key}' 
> (type: System.Linq.Expressions.MemberInitExpression) is not supported.
> {code}
> Add VisitMemberInit overload to CacheQueryExpressionVisitor to support this 
> scenario. See linked SO page for more details - there is a proposed fix as 
> well.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to