Dapper ORM Une bibliothèque NuGet qui étendra votre interface IDbConnection
avec des extensions géniales!

string sql = "SELECT * FROM Invoices";

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

Dapper FAQ



Dapper est-il un ORM?

Oui et non! Les gens se disputent encore à ce sujet. Dapper a remporté le titre de roi du C # Micro ORM mais est considéré par plusieurs personnes comme un simple mappeur d'objets pour .NET.



Dapper est-il meilleur que Entity Framework?

Oui et non! Les gens préfèrent Dapper lorsqu'ils souhaitent écrire eux-mêmes la requête SQL avec des performances optimales.



Dapper SQL Injections est-il sécurisé?

Oui, c'est 100% sûr si vous utilisez des requêtes paramétrées comme vous devriez toujours le faire!



Est-ce que Dapper supporte Bulk Insert?

Non, mais une bibliothèque tierce le fait: Dapper Plus . C'est une bibliothèque de premier plan qui étend Dapper à toutes les opérations en bloc.

Learn More


Dapper prend-il en charge mon fournisseur de base de données?

Probablement oui puisque Dapper fournit des extensions à l'interface IDbConnection. C'est votre travail d'écrire le code SQL compatible avec votre fournisseur de base de données.



Dapper prend-il en charge la transaction?

Oui, Dapper prend en charge les transactions et chaque méthode pouvant en utiliser une possède un paramètre facultatif pour le spécifier.


Dapper Features

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

Consulting

Your company requires some custom solution to extend Dapper with more features?

Contact us to learn about our consultation services:
info@zzzprojects.com

You can also find some answers/ help:

Stack Overflow Issue tracker