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

Pavel Tupitsyn updated IGNITE-18698:
------------------------------------
    Release Note:   (was: Add `ISql.ExecuteAsync<T>` API, which maps SQL result 
set data to user types.

Before that, we could insert and retrieve data in a strongly typed way with 
object mapping via `IRecordView<T>` API, but SQL results could only be accessed 
in a weakly typed way through `IgniteTuple` or `DbDataReader`. This change 
fills the void.

Or, to put it another way, we could use LINQ to query data in a strongly typed 
manner. But not every query can be expressed in LINQ, sometimes we have to use 
raw SQL, but result mapping is still very useful, which is now possible.

This is also the fastest way to retrieve query results (see benchmarks), 
because there is no LINQ translation, but compiled delegates read the data with 
the lowest possible overhead.)

> С++ 3.0: SQL ResultSet object mapping
> -------------------------------------
>
>                 Key: IGNITE-18698
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18698
>             Project: Ignite
>          Issue Type: Improvement
>          Components: platforms, thin client
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET, ignite-3
>             Fix For: 3.0.0-beta2
>
>
> Table API provides object mapping capabilities:
> {code:c#}
> IRecordView<Person> mappedView = Table.GetRecordView<Person>();
> Person res = await mappedView.GetAsync(...);
> {code}
> This is cleaner and more efficient than working with *IgniteTuple*s (less 
> allocations and type casts).
> Implement similar functionality for SQL API - see *ISql.ExecuteAsync<T>*.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to