Dapper 応用

匿名型に結果を詰める

 var dsn = "Server=server01;Port=5432;User Id=taro;Password=mypass;Database=mydb";
 var cn = new NpgsqlConnection(dsn);
 cn.Open();
 var all = cn.Query(@"SELECT * FROM t1");

指定した型に結果を詰める

 
 public class MyEntity
 {
     public int Id { get; set; }
     public string Name { get; set; }
 }
 var all = cn.Query<MyEntity>(@"SELECT * FROM t1");

プリペアドステートメントで動的なパラメータを引数にする

 DynamicParameters p = new DynamicParameters();
 //DynamicParameters p = new DynamicParameters(dict);
 p.Add("age", 10);
 var sql = @"SELECT * FROM user WHERE " + String.Join(" AND ", where);
 var rows = con.Query(sql, p);

http://stackoverflow.com/questions/9481678/how-to-create-arguments-for-a-dapper-query-dynamically

シングルカラム

 var count = (int) con.Query<Int64>(@"SELECT COUNT(*) AS count FROM t1").Single();

結果セットを返さないクエリの実行

 var numOfRows = con.Execute("UPDATE t1 foo = @foo WEHRE @id > 10", new { id = 10, foo = 1 });

プリペアドステートメントでのLIKE演算子

 users = cn.Query(@"SELECT * FROM user WHERE name LIKE @name LIMIT 10", new { name = '%' + val + '%'});

または

 users = cn.Query(@"SELECT * FROM user WHERE name LIKE '%' || @name || '%' LIMIT 10", new { name = val });

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2014-02-23 (日) 05:51:56