Buscar..


Uso básico

No siempre es posible empaquetar cuidadosamente todos los parámetros en un solo objeto / llamada. Para ayudar con escenarios más complicados, dapper permite que el parámetro param sea ​​una instancia de IDynamicParameters . Si hace esto, se llama al método AddParameters personalizado en el momento adecuado y se le entrega el comando para que lo agregue. En la mayoría de los casos, sin embargo, es suficiente usar el tipo DynamicParameters preexistente:

var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");

Esta espectáculos:

  • (opcional) población de un objeto existente
  • (opcional) añadiendo parámetros adicionales sobre la marcha
  • Pasando los parámetros al comando.
  • recuperando cualquier valor actualizado después de que el comando haya finalizado

Tenga en cuenta que, debido a la forma en que funcionan los protocolos RDBMS, generalmente solo es confiable obtener valores de parámetros actualizados después de que todos los datos (de una operación Query o QueryMultiple`) se hayan consumido por completo (por ejemplo, en SQL Server, los valores de parámetros actualizados están al final) de la secuencia de TDS).

Parámetros dinámicos en Dapper

connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});

Usando un objeto de plantilla

Puedes usar una instancia de un objeto para formar tus parámetros

public class SearchParameters {
  public string SearchString { get; set; }
  public int Page { get; set; }
}

var template= new SearchParameters {
  SearchString = "Dapper",
  Page = 1
};

var p = new DynamicParameters(template);

También puedes usar un objeto anónimo o un Dictionary



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow