Dapper: Entity Framework type handlers (with a strong name)Extension handlers for entity frameworkMarc Gravell;Nick Craver
- net461
+ net462../Dapper.snktruetrue
diff --git a/Dapper.EntityFramework/Dapper.EntityFramework.csproj b/Dapper.EntityFramework/Dapper.EntityFramework.csproj
index 0496d9c8f..aeb3dada8 100644
--- a/Dapper.EntityFramework/Dapper.EntityFramework.csproj
+++ b/Dapper.EntityFramework/Dapper.EntityFramework.csproj
@@ -5,7 +5,7 @@
Dapper entity framework type handlers1.50.2Marc Gravell;Nick Craver
- net461
+ net462orm;sql;micro-ormenable
diff --git a/Dapper.ProviderTools/Dapper.ProviderTools.csproj b/Dapper.ProviderTools/Dapper.ProviderTools.csproj
index 61e8b4c58..6086925f7 100644
--- a/Dapper.ProviderTools/Dapper.ProviderTools.csproj
+++ b/Dapper.ProviderTools/Dapper.ProviderTools.csproj
@@ -5,7 +5,7 @@
Dapper Provider ToolsProvider-agnostic ADO.NET helper utilitiesMarc Gravell
- net461;netstandard2.0;net5.0
+ net462;netstandard2.0;net5.0trueenable
@@ -18,7 +18,7 @@
-
+
diff --git a/Dapper.Rainbow/Dapper.Rainbow.csproj b/Dapper.Rainbow/Dapper.Rainbow.csproj
index 7d5f3ff5a..d44bc932f 100644
--- a/Dapper.Rainbow/Dapper.Rainbow.csproj
+++ b/Dapper.Rainbow/Dapper.Rainbow.csproj
@@ -6,7 +6,7 @@
Trivial micro-orm implemented on Dapper, provides with CRUD helpers.Sam Saffron2017 Sam Saffron
- net461;netstandard2.0;net5.0
+ net462;netstandard2.0;net5.0false
@@ -16,7 +16,7 @@
-
+
\ No newline at end of file
diff --git a/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj b/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj
index b597bd9eb..b5b1decef 100644
--- a/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj
+++ b/Dapper.SqlBuilder/Dapper.SqlBuilder.csproj
@@ -5,7 +5,7 @@
Dapper SqlBuilder componentThe Dapper SqlBuilder component, for building SQL queries dynamically.Sam Saffron, Johan Danforth
- net461;netstandard2.0;net5.0
+ net462;netstandard2.0;net5.0falsefalseenable
@@ -21,7 +21,7 @@
-
+
\ No newline at end of file
diff --git a/Dapper.StrongName/Dapper.StrongName.csproj b/Dapper.StrongName/Dapper.StrongName.csproj
index dec6f7f0c..3727625d9 100644
--- a/Dapper.StrongName/Dapper.StrongName.csproj
+++ b/Dapper.StrongName/Dapper.StrongName.csproj
@@ -5,7 +5,7 @@
Dapper (Strong Named)A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc..Sam Saffron;Marc Gravell;Nick Craver
- net461;netstandard2.0;net5.0
+ net462;netstandard2.0;net5.0truetrueenable
@@ -16,7 +16,12 @@
-
+
+
+
+
+
+
diff --git a/Dapper/CommandFlags.cs b/Dapper/CommandFlags.cs
index 45cd45d3e..d7eb42a55 100644
--- a/Dapper/CommandFlags.cs
+++ b/Dapper/CommandFlags.cs
@@ -24,5 +24,7 @@ public enum CommandFlags
/// Should the plan cache be bypassed?
///
NoCache = 4,
+
+ // reserved: DisposeConnection = 1 << 30
}
}
diff --git a/Dapper/Dapper.csproj b/Dapper/Dapper.csproj
index cf98d5abf..59d58192e 100644
--- a/Dapper/Dapper.csproj
+++ b/Dapper/Dapper.csproj
@@ -5,7 +5,7 @@
orm;sql;micro-ormA high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc..Sam Saffron;Marc Gravell;Nick Craver
- net461;netstandard2.0;net5.0
+ net462;netstandard2.0;net5.0;net7.0enabletrue
@@ -23,8 +23,12 @@
runtime; build; native; contentfiles; analyzers
+
+
+
-
+
+
diff --git a/Dapper/DbConnectionExtensions.cs b/Dapper/DbConnectionExtensions.cs
new file mode 100644
index 000000000..788e09769
--- /dev/null
+++ b/Dapper/DbConnectionExtensions.cs
@@ -0,0 +1,532 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.Common;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Dapper;
+
+///
+/// Provides extension methods for performing database operations from instances.
+///
+public static class DbConnectionExtensions
+{
+ internal const int DefaultTimeout = -1;
+
+ ///
+ /// Execute a non-query command.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for this query.
+ /// The parameters to use for this query.
+ /// The transaction to use for this query.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// The number of rows affected.
+ public static int Execute(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Execute a non-query command.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for this query.
+ /// The parameters to use for this query.
+ /// The transaction to use for this query.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// The number of rows affected.
+ public static Task ExecuteAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a non-buffered query, returning the data typed as dynamic objects with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static IEnumerable QueryUnbuffered(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a non-buffered query, returning the data typed as dynamic objects with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static IAsyncEnumerable QueryUnbufferedAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query, returning the data as a list of dynamic objects with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static List Query(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query, returning the data as a list of dynamic objects with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: each row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task> QueryAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a non-buffered query, returning the data typed as .
+ ///
+ /// The type of results to return.
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ ///
+ /// A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column is assumed, otherwise an instance is
+ /// created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+ ///
+ public static IEnumerable QueryUnbuffered(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a non-buffered query, returning the data typed as .
+ ///
+ /// The type of results to return.
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ ///
+ /// A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column is assumed, otherwise an instance is
+ /// created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+ ///
+ public static IAsyncEnumerable QueryUnbufferedAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query, returning the data typed as a list of .
+ ///
+ /// The type of results to return.
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.m>
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ ///
+ /// A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column is assumed, otherwise an instance is
+ /// created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+ ///
+ public static List Query(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query, returning the data typed as a list of .
+ ///
+ /// The type of results to return.
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.m>
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ ///
+ /// A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column is assumed, otherwise an instance is
+ /// created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
+ ///
+ public static Task> QueryAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+
+ ///
+ /// Executes a buffered query that demands at least one row, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static dynamic QueryFirst(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands exactly one row, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static dynamic QuerySingle(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that returns the first row or null if no rows at returned, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static dynamic? QueryFirstOrDefault(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at most one row (returning null if no rows at returned), returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static dynamic? QuerySingleOrDefault(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at least one row, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static T QueryFirst(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands exactly one row, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static T QuerySingle(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that returns the first row or null if no rows at returned, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static T? QueryFirstOrDefault(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at most one row (returning null if no rows at returned), interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static T? QuerySingleOrDefault(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+
+ ///
+ /// Executes a buffered query that demands at least one row, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QueryFirstAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands exactly one row, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QuerySingleAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that returns the first row or null if no rows at returned, returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QueryFirstOrDefaultAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at most one row (returning null if no rows at returned), returning the data as a dynamic object with properties matching the columns.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QuerySingleOrDefaultAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at least one row, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QueryFirstAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands exactly one row, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QuerySingleAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that returns the first row or null if no rows at returned, interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QueryFirstOrDefaultAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Executes a buffered query that demands at most one row (returning null if no rows at returned), interpreting the data as a
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for the query.
+ /// The parameters to pass, if any.
+ /// The transaction to use, if any.
+ /// The command timeout (in seconds).
+ /// The type of command to execute.
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// Note: the row can be accessed via "dynamic", or by casting to an IDictionary<string,object>
+ public static Task QuerySingleOrDefaultAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+ ///
+ /// Execute parameterized SQL and return an .
+ ///
+ /// The connection to execute on.
+ /// The SQL to execute.
+ /// The parameters to use for this command.
+ /// The transaction to use for this command.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional behaviour for this reader
+ /// Optional flags for this command
+ /// An that can be used to iterate over the results of the SQL query.
+ ///
+ /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ /// or .
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static DbDataReader ExecuteReader(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandBehavior behavior = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Execute parameterized SQL and return an .
+ ///
+ /// The connection to execute on.
+ /// The SQL to execute.
+ /// The parameters to use for this command.
+ /// The transaction to use for this command.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional behaviour for this reader
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// An that can be used to iterate over the results of the SQL query.
+ ///
+ /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
+ /// or .
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Task ExecuteReaderAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandBehavior behavior = default, CommandFlags flags = default, CancellationToken cancellationToken = default) => throw new NotImplementedException();
+
+
+ ///
+ /// Execute a command that returns multiple result sets, and access each in turn.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for this query.
+ /// The parameters to use for this query.
+ /// The transaction to use for this query.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ public static SqlMapper.GridReader QueryMultiple(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default)
+ => throw new NotImplementedException();
+
+ ///
+ /// Execute a command that returns multiple result sets, and access each in turn.
+ ///
+ /// The connection to query on.
+ /// The SQL to execute for this query.
+ /// The parameters to use for this query.
+ /// The transaction to use for this query.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ public static Task QueryMultipleAsync(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout, CommandType commandType = default, CommandFlags flags = default, CancellationToken cancellationToken = default)
+ => throw new NotImplementedException();
+
+ ///
+ /// Execute parameterized SQL that selects a single value.
+ ///
+ /// The connection to execute on.
+ /// The SQL to execute.
+ /// The parameters to use for this command.
+ /// The transaction to use for this command.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// The first cell selected as .
+ public static object? ExecuteScalar(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout,
+ CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Execute parameterized SQL that selects a single value.
+ ///
+ /// The type to return.
+ /// The connection to execute on.
+ /// The SQL to execute.
+ /// The parameters to use for this command.
+ /// The transaction to use for this command.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// The first cell returned, as .
+ public static T? ExecuteScalar(this DbConnection cnn, string sql, object? param = null, DbTransaction? transaction = null, int commandTimeout = DefaultTimeout,
+ CommandType commandType = default, CommandFlags flags = default) => throw new NotImplementedException();
+
+ ///
+ /// Execute parameterized SQL that selects a single value.
+ ///
+ /// The connection to execute on.
+ /// The SQL to execute.
+ /// The parameters to use for this command.
+ /// The transaction to use for this command.
+ /// Number of seconds before command execution timeout.
+ /// Is it a stored proc or a batch?
+ /// Optional flags for this command
+ /// Asynchronous cancellation for this command
+ /// The first cell selected as .
+ public static Task