• 文字列で生SQLを書いて<T>にマッピング、それだけ • 非常に高速 • Dapperだけだとプリミティブすぎるので簡単な上モノは用意しています • Dapperのシンプルさを損ねないよう、やりすぎないようシンプルに var dog = connection.Query<Dog>("select * from dogs where id = @id", new { id = 100 });
ちょっとだけカスタマイズして使っています var person = new Person(); var name = await person.Name; // awaitで初期化・取得できる // 複数同時初期化が可能 await AsyncLazy.WhenAll(person1.Name, person2.Name, person3.Name);
} public AsyncLazy<int> Age { get; set; } public Person() { Name = new AsyncLazy<string>(() => Redis.GetString("Name" + id)); Age = new AsyncLazy<int>(() => { using(var dbConn = …) { return dbConn.Query<int>(“select age from . where id = @id”); } } } // RedisがパイプラインでNameを同時初期化 await AsyncLazy.WhenAll(person1.Name, person2.Name, person3.Name); // DBがマルチスレッドでAgeを同時初期化 await AsyncLazy.WhenAll(person1.Age, person2.Age, person3.Age);