More Related Content
Similar to ビジネス向けアプリケーションにこそ進めるMicro orm
Similar to ビジネス向けアプリケーションにこそ進めるMicro orm (15)
More from Tadahiro Ishisaka
More from Tadahiro Ishisaka (20)
ビジネス向けアプリケーションにこそ進めるMicro orm
- 24. Dapper
- a simple object mapper for .Net
多分.NET一番ポピュラーなMicroORM
結果セットが帰ってくるQueryと帰ってこない実行のみのExecute二つの
メソッド。
どちらもADO.NETのConnectionの拡張メソッドとして実装されている
クエリ引数とオブジェクトプロパティとの紐付け、結果セットのフィール
ドとオブジェクトプロパティとの紐付けはシンプルに「名前」で解決
パフォーマンスはDataReaderとほぼ同じ。
と言うか、中はDataReader。
Stack Overflowの中の人Sam Saffromが作った
24
- 26. 単純なクエリー
private static void Main(string[] args)
{
string connecttionString =
@"hogeohoge";
using (var con = new SqlConnection(connecttionString))
{
int ret;
con.Open();
//データ抽出
var logs = con.Query<Log>("SELECT Id, TimeStamp, Description FROM Log");
logs.ToList()
.ForEach(l => Console.WriteLine(
"{0}, {1}, {2}", l.Id, l.TimeStamp, l.Description));
}
}
26
- 27. INSERT
private static void Main(string[] args)
{
string connecttionString =
@"Hoge";
using (var con = new SqlConnection(connecttionString))
{
int ret;
con.Open();
//データ追加
ret = con.Execute("INSERT Log(TimeStamp, Description) VALUES(@tm, @desc)",
new { tm = DateTime.Now, desc = "Description" });
Console.WriteLine("{0}行追加しました。", ret);
}
}
27
- 28. 結果セットを返す
ストアードプロシージャ
//ストアードプロシージャの実行
var logs = con.Query<Log>(
"GetLogs", new { param1 = DateTime.Now.AddHours(1.0) },
commandType: CommandType.StoredProcedure);
logs2.ToList().ForEach(
l => Console.WriteLine("{0}, {1}, {2}", l.Id, l.TimeStamp, l.Description));
28