Dapper ORM Una libreria NuGet che estenderà l'interfaccia IDbConnection
con fantastiche estensioni!

string sql = "SELECT * FROM Invoices";

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

Dapper FAQ



Dapper è un ORM?

Sì e no! Le persone stanno ancora discutendo su questo. Dapper si è guadagnato il titolo di re del C # Micro ORM ma è considerato da più persone come un semplice object mapper per .NET.



Dapper è migliore di Entity Framework?

Sì e no! Le persone preferiranno Dapper quando vogliono scrivere la query SQL con prestazioni ottimali.



Le iniezioni SQL di Dapper sono sicure?

Sì, è sicuro al 100% se usi le query parametrizzate come dovresti fare sempre!



Do Dapper supporta Bulk Insert?

No, ma una libreria di terze parti funziona: Dapper Plus . È una libreria primaria che estende Dapper con tutte le operazioni di massa.

Learn More


Do Dapper supporta il mio provider di database?

Probabilmente sì dato che Dapper fornisce estensioni all'interfaccia IDbConnection. È tuo compito scrivere SQL compatibile con il tuo provider di database.



Do Dapper supporta la transazione?

Sì, la transazione di supporto Dapper e ogni metodo che può utilizzare uno hanno un parametro facoltativo per specificarlo.


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 SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
      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 SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{
      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 SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{

      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 SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
{   
      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