MVC 3 プロジェクトでは、EF4、IoC、および Agatha-RRSL をサービス レイヤーとして使用しています。
幸いなことに、今週私は Dapper を見つけ、EF4 から Dapper に移行しています!
通常、私は Agatha Request Handlers に Generic Repository を挿入します ...
しかし、どのように Dapper を使用すればよいでしょうか?
1) Agatha Handler に IDbConnection を挿入する必要がありますか? 次に、ハンドラー内で、Dapper Query または Dapper Execute で使用しますか? これはテスト可能ですか?そして、嘲笑についてはどうですか?
2) Dapper 用の汎用リポジトリを作成する必要がありますか? おそらく、リポジトリは次のようになります。
public class Repository {
private IDbConnection _connection;
public Repository(IDbConnection connection) {
_connection = connection;
} // Repository
public Int32 Execute(String sql, dynamic param = null) {
return _connection.Execute(sql, param);
} // Execute
// Query code
}
IDbConnection がここに挿入されます。
そして、リポジトリはハンドラー内に挿入されます。
これをテストする方法がわからない...
3) すべてのコードをハンドラー内に配置する必要がありますか?
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Execute(@"insert Roles(Name) values (@name)", new { name = "Role" });
}
しかし、テストはどうですか?
4) Dapper が静的メソッドを使用していることに気づきました。これはいくつかのメモリの問題を引き起こしませんか?
たくさんの質問をして申し訳ありません...私はこれを正しくしようとしています。
ありがとう、ミゲル