使用 Dapper 进行多个查询时:
var result = sqlConnection.QueryMultiple(query, Parameters, commandType: commandType);
Run Code Online (Sandbox Code Playgroud)
如何获取查询返回的表计数?它有两个 .Read() 方法的重载实现,每次调用该方法时,都会移动到下一个可用结果集(无 result.Count() 属性)。最终我想将该数字放入循环中以迭代与查询返回的表数量一样多的次数。
在使用 Dapper.TVP TableValueParameter 与其他参数之后, 我已经能够执行表值参数,但我的问题是关于其实现的一部分。程序似乎有效,但我怎样才能使这个实现更加通用?根据需求在 DynamicParameters 中使用“new {}”添加参数是非常专业的实现。我也希望能够指定我的参数名称..例如
public IEnumerable<TCustomEntity> SqlQuery<TCustomEntity>(string query, IDictionary<string, object> parameters,
CommandType commandType) where TCustomEntity : class
{
DataTable dt;
DynamicParameters dp;
var sqlConnection = _context.Database.Connection;
try
{
if (sqlConnection.State == ConnectionState.Closed)
{
sqlConnection.Open();
}
var dynamicParameters = new DynamicParameters();
if (parameters != null)
foreach (var parameter in parameters)
{
if (parameter.Value is int)
dynamicParameters.Add(parameter.Key, parameter.Value, DbType.Int32);
else if (parameter.Value is string)
dynamicParameters.Add(parameter.Key, parameter.Value.ToString(), DbType.String);
else if (parameter.Value is DateTime)
dynamicParameters.Add(parameter.Key, parameter.Value, DbType.DateTime);
else if …Run Code Online (Sandbox Code Playgroud)