Código de ejemplo Dapper-Dot-Net

dapper sample

Pregunta

Este es un código cortado directamente de los ejemplos de Dapper:

var p = new DynamicParameters();
p.Add("@a", 11);
p.Add("@b", dbType: DbType.Int32, direction: ParameterDirection.Output);
p.Add("@c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue); 
cnn.Execute("spMagicProc", p, commandType: commandType.StoredProcedure);
int b = p.Get("@b");
int c = p.Get("@c");

Cualquiera : en el código anterior del ejemplo proporcionado, aparece un error, "no se puede resolver. Ejecutar" - haciendo referencia a cnn.Execute . Miro el objeto de conexión y no hay ningún método para ejecutar. Dapper obviamente funciona bien, entonces ¿qué estoy haciendo mal?

Respuesta aceptada

Creo que esto debería arreglarlo:

using( var connection = new SqlConnection( connectionString ) )
{
    try
    {
        var p = new DynamicParameters();
        p.Add( "a", 11 );
        p.Add( "b", dbType: DbType.Int32, direction: ParameterDirection.Output );
        p.Add( "c", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue );
        connection.Open();
        connection.Execute( "MyDamnStoredProc", p, commandType: CommandType.StoredProcedure );
        int b = p.Get<int>( "b" );
        int c = p.Get<int>( "c" );
    }
    catch( Exception ex )
    {
        Console.WriteLine( ex.Message );
    }
}

Notas :

  1. los params no necesitan el símbolo @; Dapper se encargará de eso por ti.
  2. asegúrese de usar parámetros con nombre; vea la conexión actualizada. Ejecute el método que especifica el commandType: parámetro. Haga esto para que los parámetros opcionales se puedan omitir de la llamada al método.

Respuesta popular

"no se puede resolver. Ejecutar"

Eso sería porque su método de extensión no está, using Dapper; en la parte superior de tu archivo.

Vea también: http://msdn.microsoft.com/en-us/library/bb308966.aspx#csharp3.0overview_topic3



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow