私のC# 4.0
コードから、 と でいくつかのクエリを実行したいと思いSybase
ますMSSQL
。使用されている (または使用される予定の) データベースは、実行時にのみ決定/認識されます。
私は、Sybase と SQL にそれぞれ と をAseCommand
使用しています。SqlCommand
次のようなジェネリック メソッドを作成することにしました。
private Department ExecuteCommand<T>(T databaseCommand) where T : class
{
Department department = new Department ();
dynamic command = databaseCommand;
using (dynamic databaseReader = command.ExecuteReader())
{
if (databaseReader.HasRows)
{
while (databaseReader.Read())
{
department.Employees.Add(this.CreateDepartmentInstance(databaseReader));
}
}
}
command.Connection.Dispose();
return department;
}
質問:
- 以外のより良いオプションはあります
dynamic
か? - 通常、ジェネリック メソッドに渡される引数の型を知る正しい方法は何ですか?
- もちろん、Sybase と SQL の 2 つの別々のメソッドを作成できます。
dynamic
しかし、そのようなものが自由に使えるのに、なぜそうする必要があるのでしょうか?