Skip to content

Microsoft.Data.Sqlite and CommandBehavior.SingleResult throws exception #466

Closed

Description

@AdamDotNet

See https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper/SqlMapper.Async.cs#L210

NuGets:
Microsoft.Data.Sqlite 1.0.0-rc1-final
Microsoft.Extensions.PlatformAbstractions 1.0.0-rc1-final

dapper-dot-net master branch

I am trying to retrieve a list of entries from a table.

columnMaps = (await connection.QueryAsync<ColumnMap>("SELECT column_id, column_name, ordinal, data_type, variable_type FROM column_map ORDER BY ordinal;").ConfigureAwait(false)).ToList();

This exception is thrown.
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at Microsoft.Data.Sqlite.SqliteCommand.d__52.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult() at Dapper.SqlMapper.<QueryAsync>d__221.MoveNext() in D:\GitHub\dapper-dot-net\Dapper\SqlMapper.Async.cs:line 210

Removing CommandBehavior.SingleResult worked, though that is obviously not the universal answer.

Activity

  1. mgravell commented on Feb 22, 2016

    @mgravell
    Member

    This is actually a sqlite provider bug; a PR for this has been merged. I
    get that it is vexing, though. I'm tempted to try and detect this error,
    set a global flag, and retry (not setting this in future). This would mean
    that it works with the optimisation when fixed at the provider.

    On Mon, 22 Feb 2016 19:37 AdamDotNet [email protected] wrote:

    See
    https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper/SqlMapper.Async.cs#L210

    NuGets:
    Microsoft.Data.Sqlite 1.0.0-rc1-final
    Microsoft.Extensions.PlatformAbstractions 1.0.0-rc1-final

    dapper-dot-net master branch

    This exception is thrown.
    at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior
    behavior)
    at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior
    behavior, CancellationToken cancellationToken)
    at Microsoft.Data.Sqlite.SqliteCommand.d__52.MoveNext()

    --- End of stack trace from previous location where exception was thrown

    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
    task)
    at
    System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
    task)
    at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
    1.ConfiguredTaskAwaiter.GetResult()
    at Dapper.SqlMapper.d__221.MoveNext() in
    D:\GitHub\dapper-dot-net\Dapper\SqlMapper.Async.cs:line 210

    Removing CommandBehavior.SingleResult worked, though that is obviously
    not the universal answer.

    —
    Reply to this email directly or view it on GitHub
    #466.

  2. AdamDotNet commented on Feb 22, 2016

    @AdamDotNet
    Author

    Fair enough! I was wondering if bugs with Dapper were actually bugs with a pre-release version of SQLite. I'll go ahead and close this one and watch for a new SQLite release.

  3. mgravell commented on Feb 22, 2016

    @mgravell
    Member

    @AdamDotNet I added a workaround for this into the code. Of course, that doesn't help if the parameters refuse to work at all (#467), but ... this bit won't bite after the next build ;)

  4. AdamDotNet commented on Feb 22, 2016

    @AdamDotNet
    Author

    Cool, thanks!

  5. mgravell commented on Feb 22, 2016

    @mgravell
    Member

    For reference: issue / pull request

  6. mgravell commented on Apr 1, 2016

    @mgravell
    Member

    deployed 1.50-beta9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions