You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Tupitsyn (Jira)" <ji...@apache.org> on 2026/03/31 09:20:00 UTC

[jira] [Updated] (IGNITE-24620) .NET: LINQ: Inconsistent exceptions in First/Single when result count is unexpected

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

Pavel Tupitsyn updated IGNITE-24620:
------------------------------------
    Fix Version/s: 3.2

> .NET: LINQ: Inconsistent exceptions in First/Single when result count is unexpected
> -----------------------------------------------------------------------------------
>
>                 Key: IGNITE-24620
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24620
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, thin client
>    Affects Versions: 3.0
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Trivial
>              Labels: .NET, LINQ, ignite-3, newbie
>             Fix For: 3.2
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reproducer:
> {code}
> await client.Sql.ExecuteAsync(null, "CREATE TABLE IF NOT EXISTS FOO (ID INT PRIMARY KEY, NAME VARCHAR)");
> var table = await client.Tables.GetTableAsync("FOO");
> var view = table!.GetRecordView<Rec>();
> view.AsQueryable().First();
> {code}
> Exception:
> {code}
> System.InvalidOperationException : ResultSet is empty: select _T0.ID, _T0.NAME from PUBLIC.FOO as _T0 limit 1
>    at Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingleInternalAsync[T](QueryModel queryModel, ExecutionOptions options) in /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line 171
>    at Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingleInternalAsync[T](QueryModel queryModel, ExecutionOptions options) in /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line 174
>    at Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingle[T](QueryModel queryModel, Boolean returnDefaultWhenEmpty) in /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line 72
>    at Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo.ExecuteSingleQueryModel[T](QueryModel queryModel, IQueryExecutor executor)
>    at Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo.ExecuteQueryModel(QueryModel queryModel, IQueryExecutor executor)
>    at Remotion.Linq.QueryModel.Execute(IQueryExecutor executor)
>    at Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute(Expression expression) in /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line 162
>    at Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute[TResult](Expression expression) in /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line 91
> {code}
> Expected exception:
> {code}
> System.InvalidOperationException : Sequence contains no elements
> {code}
> Expected exception for Single when there is more than 1:
> {code}
> System.InvalidOperationException : Sequence contains more than one element
> {code}
> Those exceptions are standard for LINQ and familiar to developers, we should not invent our own.



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