Dapper ORM IDbConnection 인터페이스를 확장 할 NuGet 라이브러리
멋진 확장 기능!

string sql = "SELECT * FROM Invoices";

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



Dapper가 ORM입니까?

예, 아니오! 사람들은 여전히 그것에 대해 논쟁 중이다. Dapper는 C # Micro ORM의 왕이라는 칭호를 얻었지만 여러 사람이 .NET의 간단한 개체 매퍼로 간주합니다.



Dapper는 Entity Framework보다 나은가요?

예, 아니오! 사람들은 최적의 성능으로 SQL 쿼리를 직접 작성하고자 할 때 Dapper를 선호합니다.



Dapper SQL Injections는 안전한가요?

그렇습니다. 항상 매개 변수가있는 쿼리를 사용하면 100 % 안전합니다.



Dapper가 대량 삽입을 지원합니까?

아니요.하지만 써드 파티 라이브러리는 Dapper Plus 입니다. Dapper를 모든 대량 작업으로 확장하는 주요 라이브러리입니다.

Learn More


Do Dapper가 내 데이터베이스 제공 업체를 지원합니까?

아마 Dapper가 IDbConnection 인터페이스를 확장 한 이후로 그렇습니다. 데이터베이스 제공 업체와 호환되는 SQL을 작성하는 것은 귀하의 임무입니다.



Dapper가 거래를 지원합니까?

예, Dapper 지원 트랜잭션 및이를 사용할 수있는 모든 메소드에는이를 지정하는 선택적 매개 변수가 있습니다.


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