将类型传递给IDBConnection Get<;T>;()

本文关键字:lt gt Get 类型 IDBConnection | 更新日期: 2023-09-27 18:28:18

是否可以在运行时将类型传递给IDBConnection.Get<T>扩展?

例如,我有像Countrys、States、Cities这样的类,以及一个包含其中任何一个的对象变量实例。我想把类类型传递给Get<T>方法

伪码:

var myobject = _somedata;  //it could be of type countries, states, cities, etc...
var q = sqlConn.Get<typeof(myobject)>()

有没有办法做到这一点?

将类型传递给IDBConnection Get<;T>;()

你可以,但你不想。结果代码很糟糕。

相反,请尝试编写自己的扩展方法,该方法使用参数的类型。

public static T GetLike<T>(this IDbConnection conn, T likeType)
{
    return conn.Get<T>();
}

然后你可以简单地调用

var q = sqlConn.GetLike(myobject);

编译器将推断出匿名类型。