├── .github
├── FUNDING.yml
└── ISSUE_TEMPLATE.md
├── .gitignore
├── Dapper.Transaction.Net461
├── Dapper.Transaction.Net461.csproj
├── Properties
│ └── AssemblyInfo.cs
└── packages.config
├── Dapper.Transaction.Net5
└── Dapper.Transaction.Net5.csproj
├── Dapper.Transaction.Net7
└── Dapper.Transaction.Net7.csproj
├── Dapper.Transaction.NetStandard20
└── Dapper.Transaction.NetStandard20.csproj
├── Dapper.Transaction.Shared
├── Dapper.Transaction.Shared.projitems
├── Dapper.Transaction.Shared.shproj
├── DbTransaction
│ └── Extensions
│ │ ├── Execute.cs
│ │ ├── ExecuteAsync.cs
│ │ ├── ExecuteReader.cs
│ │ ├── ExecuteReaderAsync.cs
│ │ ├── ExecuteScalar.cs
│ │ ├── ExecuteScalarAsync.cs
│ │ ├── ExecuteScalarAsync`.cs
│ │ ├── ExecuteScalar`.cs
│ │ ├── Query.cs
│ │ ├── QueryAsync.cs
│ │ ├── QueryAsync`.cs
│ │ ├── QueryFirst.cs
│ │ ├── QueryFirstAsync.cs
│ │ ├── QueryFirstAsync`.cs
│ │ ├── QueryFirstOrDefault.cs
│ │ ├── QueryFirstOrDefaultAsync.cs
│ │ ├── QueryFirstOrDefaultAsync`.cs
│ │ ├── QueryFirstOrDefault`.cs
│ │ ├── QueryFirst`.cs
│ │ ├── QueryMultiple.cs
│ │ ├── QueryMultipleAsync.cs
│ │ ├── QuerySingle.cs
│ │ ├── QuerySingleAsync.cs
│ │ ├── QuerySingleAsync`.cs
│ │ ├── QuerySingleOrDefault.cs
│ │ ├── QuerySingleOrDefaultAsync.cs
│ │ ├── QuerySingleOrDefaultAsync`.cs
│ │ ├── QuerySingleOrDefault`.cs
│ │ ├── QuerySingle`.cs
│ │ ├── QueryUnbufferedAsync.cs
│ │ ├── QueryUnbufferedAsync`.cs
│ │ └── Query`.cs
└── Helper
│ └── GetConnection.cs
├── Dapper.Transaction.StrongName.Net461
├── Dapper.Transaction.StrongName.Net461.csproj
├── Properties
│ └── AssemblyInfo.cs
└── packages.config
├── Dapper.Transaction.StrongName.Net5
└── Dapper.Transaction.StrongName.Net5.csproj
├── Dapper.Transaction.StrongName.Net7
└── Dapper.Transaction.StrongName.Net7.csproj
├── Dapper.Transaction.StrongName.NetStandard20
└── Dapper.Transaction.StrongName.NetStandard20.csproj
├── Dapper.Transaction.sln
├── Key.snk
├── LICENSE
├── Lab.StrongName
├── App.config
├── Lab.StrongName.csproj
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── packages.config
├── Lab
├── App.config
├── Lab.csproj
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── packages.config
├── README.md
├── dapper-plus-sponsor.png
└── entity-framework-extensions-sponsor.png
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [zzzprojects]
2 | custom: ["https://zzzprojects.com/contribute"]
3 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | Here is what to include in your request to make sure we implement a solution as quickly as possible.
2 |
3 | ## 1. Description
4 | Describe the issue or propose a feature.
5 |
6 | ## 2. Exception
7 | If you are seeing an exception, include the full exception details (message and stack trace).
8 |
9 | ```
10 | Exception message:
11 | Stack trace:
12 | ```
13 |
14 | ## 3. Fiddle or Project
15 | If you are able,
16 |
17 | Provide a Fiddle that reproduce the issue: https://dotnetfiddle.net/25Vjsn
18 |
19 | Or provide a project/solution that we can run to reproduce the issue.
20 | - Make sure the project compile
21 | - Make sure to provide only the code that is required to reproduce the issue, not the whole project
22 | - You can send private code here: info@zzzprojects.com
23 |
24 | Otherwise, make sure to include as much information as possible to help our team to reproduce the issue.
25 |
26 | ## 4. Any further technical details
27 | Add any relevant detail that can help us.
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vs/
2 | packages/
3 | #################
4 | ## Eclipse
5 | #################
6 |
7 | *.pydevproject
8 | .project
9 | .metadata
10 | bin/
11 | tmp/
12 | *.tmp
13 | *.bak
14 | *.swp
15 | *~.nib
16 | local.properties
17 | .classpath
18 | .settings/
19 | .loadpath
20 |
21 | # External tool builders
22 | .externalToolBuilders/
23 |
24 | # Locally stored "Eclipse launch configurations"
25 | *.launch
26 |
27 | # CDT-specific
28 | .cproject
29 |
30 | # PDT-specific
31 | .buildpath
32 |
33 |
34 | #################
35 | ## Visual Studio
36 | #################
37 |
38 | ## Ignore Visual Studio temporary files, build results, and
39 | ## files generated by popular Visual Studio add-ons.
40 |
41 | # User-specific files
42 | *.suo
43 | *.user
44 | *.sln.docstates
45 |
46 | # Build results
47 | [Dd]ebug/
48 | [Rr]elease/
49 | *_i.c
50 | *_p.c
51 | *.ilk
52 | *.meta
53 | *.obj
54 | *.pch
55 | *.pdb
56 | *.pgc
57 | *.pgd
58 | *.rsp
59 | *.sbr
60 | *.tlb
61 | *.tli
62 | *.tlh
63 | *.tmp
64 | *.vspscc
65 | .builds
66 | *.dotCover
67 |
68 | ## TODO: If you have NuGet Package Restore enabled, uncomment this
69 | #packages/
70 |
71 | # Visual C++ cache files
72 | ipch/
73 | *.aps
74 | *.ncb
75 | *.opensdf
76 | *.sdf
77 |
78 | # Visual Studio profiler
79 | *.psess
80 | *.vsp
81 |
82 | # ReSharper is a .NET coding add-in
83 | _ReSharper*
84 |
85 | # Installshield output folder
86 | [Ee]xpress
87 |
88 | # DocProject is a documentation generator add-in
89 | DocProject/buildhelp/
90 | DocProject/Help/*.HxT
91 | DocProject/Help/*.HxC
92 | DocProject/Help/*.hhc
93 | DocProject/Help/*.hhk
94 | DocProject/Help/*.hhp
95 | DocProject/Help/Html2
96 | DocProject/Help/html
97 |
98 | # Click-Once directory
99 | publish
100 |
101 | # Others
102 | [Bb]in
103 | [Oo]bj
104 | sql
105 | TestResults
106 | *.Cache
107 | ClientBin
108 | stylecop.*
109 | ~$*
110 | *.dbmdl
111 | Generated_Code #added for RIA/Silverlight projects
112 |
113 | # Backup & report files from converting an old project file to a newer
114 | # Visual Studio version. Backup files are not needed, because we have git ;-)
115 | _UpgradeReport_Files/
116 | Backup*/
117 | UpgradeLog*.XML
118 |
119 |
120 |
121 | ############
122 | ## Windows
123 | ############
124 |
125 | # Windows image file caches
126 | Thumbs.db
127 |
128 | # Folder config file
129 | Desktop.ini
130 |
131 |
132 | #############
133 | ## Python
134 | #############
135 |
136 | *.py[co]
137 |
138 | # Packages
139 | *.egg
140 | *.egg-info
141 | dist
142 | build
143 | eggs
144 | parts
145 | bin
146 | var
147 | sdist
148 | develop-eggs
149 | .installed.cfg
150 |
151 | # Installer logs
152 | pip-log.txt
153 |
154 | # Unit test / coverage reports
155 | .coverage
156 | .tox
157 |
158 | #Translations
159 | *.mo
160 |
161 | #Mr Developer
162 | .mr.developer.cfg
163 |
164 | # Mac crap
165 | .DS_Store
--------------------------------------------------------------------------------
/Dapper.Transaction.Net461/Dapper.Transaction.Net461.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {B95951E5-7167-4B34-9CF0-D33AC6178333}
8 | Library
9 | Properties
10 | Dapper.Transaction
11 | Dapper.Transaction
12 | v4.6.1
13 | 512
14 | true
15 |
16 |
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | pdbonly
27 | true
28 | bin\Release\
29 | TRACE
30 | prompt
31 | 4
32 | bin\Release\Dapper.Transaction.xml
33 |
34 |
35 | false
36 |
37 |
38 | ..\Key.snk
39 |
40 |
41 |
42 | ..\packages\Dapper.2.1.35\lib\net461\Dapper.dll
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Net461/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | [assembly: AssemblyTitle("Dapper.Transaction")]
5 | [assembly: AssemblyDescription("IDbTransaction extension methods for Dapper: A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc..")]
6 | [assembly: AssemblyConfiguration("")]
7 | [assembly: AssemblyCompany("ZZZ Projects Inc.")]
8 | [assembly: AssemblyProduct("Dapper.Transaction")]
9 | [assembly: AssemblyCopyright("ZZZ Projects Inc.")]
10 | [assembly: AssemblyTrademark("")]
11 | [assembly: AssemblyCulture("")]
12 | [assembly: ComVisible(false)]
13 | [assembly: Guid("b95951e5-7167-4b34-9cf0-d33ac6178333")]
14 |
15 | [assembly: AssemblyVersion("2.1.35.0")]
16 | [assembly: AssemblyFileVersion("2.1.35.0")]
17 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Net461/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Net5/Dapper.Transaction.Net5.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net5.0
5 | Dapper.Transaction
6 | Dapper.Transaction
7 | 2.1.35
8 | ZZZ Projects Inc.
9 | ZZZ Projects Inc.
10 | ZZZ Projects Inc.
11 |
12 |
13 |
14 | bin\Release\
15 | bin\Release\Dapper.Transaction.xml
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Net7/Dapper.Transaction.Net7.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net7.0
5 | Dapper.Transaction
6 | Dapper.Transaction
7 | 2.1.35
8 | ZZZ Projects Inc.
9 | ZZZ Projects Inc.
10 | ZZZ Projects Inc.
11 |
12 |
13 |
14 | bin\Release\
15 | bin\Release\Dapper.Transaction.xml
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Dapper.Transaction.NetStandard20/Dapper.Transaction.NetStandard20.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 | false
6 | ..\Key.snk
7 | 2.1.35
8 | Dapper.Transaction
9 | ZZZ Projects Inc.
10 | ZZZ Projects Inc.
11 | Dapper.Transaction
12 | Dapper.Transaction
13 | IDbTransaction extension methods for Dapper: A high performance Micro-ORM supporting SQL Server, MySQL, Sqlite, SqlCE, Firebird etc..
14 | ZZZ Projects Inc.
15 |
16 |
17 |
18 | \bin\Release\netstandard2.0\Dapper.Transaction.xml
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/Dapper.Transaction.Shared.projitems:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
5 | true
6 | f448faea-4a1d-4432-8343-99c346856dab
7 |
8 |
9 | Dapper.Transaction.Shared
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/Dapper.Transaction.Shared.shproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | f448faea-4a1d-4432-8343-99c346856dab
5 | 14.0
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/Execute.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 |
3 | namespace Dapper.Transaction
4 | {
5 | public static partial class DbTransactionExtensions
6 | {
7 | ///
8 | /// Execute parameterized SQL.
9 | ///
10 | /// The transaction to execute on.
11 | /// The command to execute on this connection.
12 | /// The number of rows affected.
13 | public static int Execute(this IDbTransaction transaction, CommandDefinition command)
14 | {
15 | return InternalGetConnection.GetConnection(transaction).Execute(command);
16 | }
17 |
18 | ///
19 | /// Execute parameterized SQL.
20 | ///
21 | /// The transaction to query on.
22 | /// The SQL to execute for this query.
23 | /// The parameters to use for this query.
24 | /// Number of seconds before command execution timeout.
25 | /// Is it a stored proc or a batch?
26 | /// The number of rows affected.
27 | public static int Execute(this IDbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
28 | {
29 | return InternalGetConnection.GetConnection(transaction).Execute(sql, param, transaction, commandTimeout, commandType);
30 | }
31 |
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/ExecuteAsync.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 | using System.Threading.Tasks;
3 |
4 | namespace Dapper.Transaction
5 | {
6 | public static partial class DbTransactionExtensions
7 | {
8 | ///
9 | /// Execute a command asynchronously using Task.
10 | ///
11 | /// The transaction to execute on.
12 | /// The command to execute on this connection.
13 | /// The number of rows affected.
14 | public static Task ExecuteAsync(this IDbTransaction transaction, CommandDefinition command)
15 | {
16 | return InternalGetConnection.GetConnection(transaction).ExecuteAsync(command);
17 | }
18 |
19 | ///
20 | /// Execute a command asynchronously using Task.
21 | ///
22 | /// The transaction to query on.
23 | /// The SQL to execute for this query.
24 | /// The parameters to use for this query.
25 | /// Number of seconds before command execution timeout.
26 | /// Is it a stored proc or a batch?
27 | /// The number of rows affected.
28 | public static Task ExecuteAsync(this IDbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
29 | {
30 | return InternalGetConnection.GetConnection(transaction).ExecuteAsync(sql, param, transaction, commandTimeout, commandType);
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/ExecuteReader.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 |
3 | namespace Dapper.Transaction
4 | {
5 | public static partial class DbTransactionExtensions
6 | {
7 | ///
8 | /// Execute parameterized SQL and return an .
9 | ///
10 | /// The transaction to execute on.
11 | /// The SQL to execute.
12 | /// The parameters to use for this command.
13 | /// Number of seconds before command execution timeout.
14 | /// Is it a stored proc or a batch?
15 | /// An that can be used to iterate over the results of the SQL query.
16 | ///
17 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
18 | /// or .
19 | ///
20 | ///
21 | ///
22 | ///
29 | ///
30 | ///
31 | public static IDataReader ExecuteReader(this IDbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
32 | {
33 | return InternalGetConnection.GetConnection(transaction).ExecuteReader(sql, param, transaction, commandTimeout, commandType);
34 | }
35 |
36 | ///
37 | /// Execute parameterized SQL and return an .
38 | ///
39 | /// The connection to execute on.
40 | /// The command to execute.
41 | /// An that can be used to iterate over the results of the SQL query.
42 | ///
43 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
44 | /// or .
45 | ///
46 | public static IDataReader ExecuteReader(this IDbTransaction transaction, CommandDefinition command)
47 | {
48 | return InternalGetConnection.GetConnection(transaction).ExecuteReader(command);
49 | }
50 |
51 | ///
52 | /// Execute parameterized SQL and return an .
53 | ///
54 | /// The connection to execute on.
55 | /// The command to execute.
56 | /// The flags for this reader.
57 | /// An that can be used to iterate over the results of the SQL query.
58 | ///
59 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
60 | /// or .
61 | ///
62 | public static IDataReader ExecuteReader(this IDbTransaction transaction, CommandDefinition command, CommandBehavior commandBehavior)
63 | {
64 | return InternalGetConnection.GetConnection(transaction).ExecuteReader(command, commandBehavior);
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/ExecuteReaderAsync.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 | using System.Data.Common;
3 | using System.Threading.Tasks;
4 |
5 | namespace Dapper.Transaction
6 | {
7 | public static partial class DbTransactionExtensions
8 | {
9 | ///
10 | /// Execute parameterized SQL and return an .
11 | ///
12 | /// The transaction to execute on.
13 | /// The SQL to execute.
14 | /// The parameters to use for this command.
15 | /// Number of seconds before command execution timeout.
16 | /// Is it a stored proc or a batch?
17 | /// An that can be used to iterate over the results of the SQL query.
18 | ///
19 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
20 | /// or .
21 | ///
22 | ///
23 | ///
24 | ///
31 | ///
32 | ///
33 | public static Task ExecuteReaderAsync(this IDbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
34 | {
35 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(sql, param, transaction, commandTimeout, commandType);
36 | }
37 |
38 | ///
39 | /// Execute parameterized SQL and return a .
40 | ///
41 | /// The transaction to execute on.
42 | /// The SQL to execute.
43 | /// The parameters to use for this command.
44 | /// Number of seconds before command execution timeout.
45 | /// Is it a stored proc or a batch?
46 | public static Task ExecuteReaderAsync(this DbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
47 | {
48 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(sql, param, transaction, commandTimeout, commandType);
49 | }
50 |
51 | ///
52 | /// Execute parameterized SQL and return an .
53 | ///
54 | /// The transaction to execute on.
55 | /// The command to execute.
56 | /// An that can be used to iterate over the results of the SQL query.
57 | ///
58 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
59 | /// or .
60 | ///
61 | public static Task ExecuteReaderAsync(this IDbTransaction transaction, CommandDefinition command)
62 | {
63 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(command);
64 | }
65 |
66 | ///
67 | /// Execute parameterized SQL and return a .
68 | ///
69 | /// The transaction to execute on.
70 | /// The command to execute.
71 | public static Task ExecuteReaderAsync(this DbTransaction transaction, CommandDefinition command)
72 | {
73 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(command);
74 | }
75 |
76 | ///
77 | /// Execute parameterized SQL and return an .
78 | ///
79 | /// The transaction to execute on.
80 | /// The command to execute.
81 | /// The flags for this reader.
82 | /// An that can be used to iterate over the results of the SQL query.
83 | ///
84 | /// This is typically used when the results of a query are not processed by Dapper, for example, used to fill a
85 | /// or .
86 | ///
87 | public static Task ExecuteReaderAsync(this IDbTransaction transaction, CommandDefinition command, CommandBehavior commandBehavior)
88 | {
89 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(command, commandBehavior);
90 | }
91 |
92 | ///
93 | /// Execute parameterized SQL and return a .
94 | ///
95 | /// The transaction to execute on.
96 | /// The command to execute.
97 | /// The flags for this reader.
98 | public static Task ExecuteReaderAsync(this DbTransaction transaction, CommandDefinition command, CommandBehavior commandBehavior)
99 | {
100 | return InternalGetConnection.GetConnection(transaction).ExecuteReaderAsync(command, commandBehavior);
101 | }
102 | }
103 | }
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/ExecuteScalar.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 |
3 | namespace Dapper.Transaction
4 | {
5 | public static partial class DbTransactionExtensions
6 | {
7 | ///
8 | /// Execute parameterized SQL that selects a single value.
9 | ///
10 | /// The transaction to execute on.
11 | /// The SQL to execute.
12 | /// The parameters to use for this command.
13 | /// Number of seconds before command execution timeout.
14 | /// Is it a stored proc or a batch?
15 | /// The first cell selected as .
16 | public static object ExecuteScalar(this IDbTransaction transaction, string sql, object param = null, int? commandTimeout = null, CommandType? commandType = null)
17 | {
18 | return InternalGetConnection.GetConnection(transaction).ExecuteScalar(sql, param, transaction, commandTimeout, commandType);
19 | }
20 |
21 | ///
22 | /// Execute parameterized SQL that selects a single value.
23 | ///
24 | /// The transaction to execute on.
25 | /// The command to execute.
26 | /// The first cell selected as .
27 | public static object ExecuteScalar(this IDbTransaction transaction, CommandDefinition command)
28 | {
29 | return InternalGetConnection.GetConnection(transaction).ExecuteScalar(command);
30 | }
31 | }
32 | }
--------------------------------------------------------------------------------
/Dapper.Transaction.Shared/DbTransaction/Extensions/ExecuteScalarAsync.cs:
--------------------------------------------------------------------------------
1 | using System.Data;
2 | using System.Threading.Tasks;
3 |
4 | namespace Dapper.Transaction
5 | {
6 | public static partial class DbTransactionExtensions
7 | {
8 | ///
9 | /// Execute parameterized SQL that selects a single value.
10 | ///
11 | /// The transaction to execute on.
12 | /// The SQL to execute.
13 | /// The parameters to use for this command.
14 | /// Number of seconds before command execution timeout.
15 | /// Is it a stored proc or a batch?
16 | /// The first cell returned, as .
17 | public static Task