从我的C# 4.0
代码中,我想对Sybase
and执行一些查询MSSQL
。正在使用(或将要使用)的数据库将仅在运行时决定/知道。
我分别使用AseCommand
和SqlCommand
用于 Sybase 和 SQL。
我决定创建这样的通用方法:
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 编写两个单独的方法。但是,当有类似的东西可以使用时,为什么要这样做
dynamic
呢?