Dapper ORM あなたのIDbConnectionインタフェースを拡張するNuGetライブラリ
素晴らしい拡張機能付き!

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より優れていますか?

はいといいえ!最適なパフォーマンスで自分自身でSQLクエリを書きたい場合、Dapperを好むでしょう。



Dapper SQLインジェクションは安全ですか?

はい、パラメータ化されたクエリを使用するのであれば、100%安全です。



Dapperはバルクインサートをサポートしていますか?

いいえ、ただし他社製のライブラリでは可能です: 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 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