Dapper ORM Una biblioteca de NuGet que extenderá su interfaz IDbConnection
Con extensiones increíbles!

string sql = "SELECT * FROM Invoices";

using (var conn = My.ConnectionFactory())
{
    var invoices = conn.Query<Invoice>(sql);
}



¿Dapper es un ORM?

¡Si y no! La gente todavía está discutiendo sobre eso. Dapper se ha ganado el título de rey de C # Micro ORM, pero varias personas lo consideran como un simple mapeador de objetos para .NET.



¿Dapper es mejor que Entity Framework?

¡Si y no! Las personas preferirán a Dapper cuando quieran escribir la consulta SQL con un rendimiento óptimo.



¿Dapper SQL Injections es seguro?

Sí, es 100% seguro si usa consultas parametrizadas como siempre debería hacer.



¿Soporta Dapper Bulk Insert?

No, pero una biblioteca de terceros lo hace: Dapper Plus . Es una biblioteca principal que amplía Dapper con todas las operaciones en masa.

Learn More


¿Dapper es compatible con mi proveedor de base de datos?

Probablemente sí, ya que Dapper proporciona extensiones a la interfaz IDbConnection. Es su trabajo escribir el SQL compatible con su proveedor de base de datos.



¿Apoya Dapper la transacción?

Sí, la transacción de soporte Dapper y todos los métodos que pueden usar uno tienen un parámetro opcional para especificarlo.


Dapper - Execute

Execute a command one or multiple times and return the number of affected rows.

  • Stored Procedure
  • INSERT statement
  • UPDATE statement
  • DELETE statement
Dapper - Execute Example
string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";

using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{
      var affectedRows = connection.Execute(sql, new {CustomerName = "Mark"});

      Console.WriteLine(affectedRows);
   
      var customer = connection.Query<Customer>("Select * FROM CUSTOMERS WHERE CustomerName = 'Mark'").ToList();
   
      FiddleHelper.WriteTable(customer);
}

Try it

Dapper - Query

Execute a query and map the result.

Dapper - Query Example
string sql = "SELECT TOP 10 * FROM OrderDetails";

using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{
      var orderDetails = connection.Query<OrderDetail>(sql).ToList();
      
      FiddleHelper.WriteTable(orderDetails);
}

Try it

Dapper - Parameters

Use parameter in your Dapper query.

Dapper - Parameter Example
string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";

using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{

      var affectedRows = connection.Execute(sql, new {CustomerName = "Mark"});

      Console.WriteLine(affectedRows);
   
      var customer = connection.Query<Customer>("Select * FROM CUSTOMERS WHERE CustomerName = 'Mark'").ToList();
      
      FiddleHelper.WriteTable(customer);
}

Try it

Dapper - Result

Map the query result to different types.

Dapper - Result Example
string sql = "SELECT TOP 10 * FROM OrderDetails";

using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{   
      var orderDetails = connection.Query<OrderDetail>(sql).ToList();

      Console.WriteLine(orderDetails.Count);
      
      FiddleHelper.WriteTable(orderDetails);
}

Try it