Dapper.NET チュートリアル
Dapper.NETを使い始める
サーチ…
備考
Dapperとは?
Dapperは、 IDbConnection
を拡張する.Net用のマイクロORMであり、クエリの設定、実行、および結果の読み取りを簡素化します。
どうすれば入手できますか?
- github: https : //github.com/StackExchange/dapper-dot-net
- NuGet: https : //www.nuget.org/packages/Dapper
一般的なタスク
バージョン
バージョン | ノート | 発売日 |
---|---|---|
1.50.0 | core-clr / asp.net 5.0がRTMに対してビルドされています | 2016年6月29日 |
1.42.0 | 2015-05-06 | |
1.40.0 | 2015-04-03 | |
1.30.0 | 2014-08-14 | |
1.20.0 | 2014-05-08 | |
1.10.0 | 2012-06-27 | |
1.0.0 | 2011-04-14 |
NugetからDapperをインストールする
Visual Studio GUIで検索するか、
ツール> NuGet Package Manager>ソリューションのパッケージ管理...(Visual Studio 2015)
または、このコマンドをNuget Power Shellインスタンスで実行して、最新の安定版をインストールします
Install-Package Dapper
または特定のバージョン
Install-Package Dapper -Version 1.42.0
C#でDapperを使う
using System.Data;
using System.Linq;
using Dapper;
class Program
{
static void Main()
{
using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true"))
{
db.Open();
var result = db.Query<string>("SELECT 'Hello World'").Single();
Console.WriteLine(result);
}
}
}
Using
ブロックに接続をラップすると、接続が閉じられます。
LINQPadでDapperを使う
LINQPadは、データベースクエリのテストに最適で、 NuGetの統合も含まれています。 LINQPadでDapperを使用するには、 F4キーを押してクエリのプロパティを開き、[ Add NuGet]を選択します。 dapper dot netを検索し、 Add To Queryを選択します。また、LINQPadクエリに拡張メソッドを含めるには、[ 名前空間の追加 ]をクリックして[Dapper] を強調表示することもできます。
Dapperを有効にすると、言語ドロップダウンをC#プログラムに変更し、クエリ結果をC#クラスにマップし、.Dump()メソッドを使用して結果を検査できます。
void Main()
{
using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true")){
db.Open();
var scalar = db.Query<string>("SELECT GETDATE()").SingleOrDefault();
scalar.Dump("This is a string scalar result:");
var results = db.Query<myobject>(@"
SELECT * FROM (
VALUES (1,'one'),
(2,'two'),
(3,'three')
) AS mytable(id,name)");
results.Dump("This is a table mapped to a class:");
}
}
// Define other methods and classes here
class myobject {
public int id { get; set; }
public string name { get; set; }
}
プログラムを実行すると、結果は次のようになります。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow