Dapper ORM Библиотека NuGet, которая расширит ваш интерфейс IDbConnection
с потрясающими расширениями!

string sql = "SELECT * FROM Invoices";

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

Dapper FAQ



Dapper - это ORM?

И да и нет! Люди все еще спорят об этом. Dapper получил звание короля C # Micro ORM, но многие люди считают его простым средством отображения объектов для .NET.



Dapper лучше, чем Entity Framework?

И да и нет! Люди предпочитают Dapper, когда хотят сами написать SQL-запрос с оптимальной производительностью.



Безопасны ли инъекции Dapper SQL?

Да, это 100% безопасно, если вы используете параметризованные запросы, как вы всегда должны делать!



Поддерживает ли Dapper Bulk Insert?

Нет, но сторонняя библиотека делает это: Dapper Plus . Это основная библиотека, которая расширяет Dapper со всеми массовыми операциями

Learn More


Поддерживает ли Dapper мой поставщик баз данных?

Вероятно, да, так как Dapper предоставляет расширения для интерфейса IDbConnection. Ваша задача - написать SQL-совместимый с вашим поставщиком баз данных.



Поддерживает ли Dapper транзакцию?

Да, транзакция поддержки Dapper и каждый метод, который может ее использовать, имеют необязательный параметр для его указания.


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