我有一个数据库,其中包含从第三个来源导入的数百个表。使用实体框架,这些表成为标记为 E_1、E_2、E_3 的 ObjectSet……所有的表都有一组共同的列,并且可以使用一个函数进行查询。
我有以下代码:
namespace Foo{
public static class Data{
public static MyEntities dataContext = new MyEntities();
public static void getData<T>(string entityName) where T : class
{
string queryString = "SELECT result FROM ";
queryString += Data.dataContext.DefaultContainerName + "." + entityName;
ObjectQuery<T> myQuery = Data.dataContext.CreateQuery<T>(queryString, null);
// do stuff
}
public static void test(){
string entityName = "E_1";
Data.getData<E_1>(entityName);
}
}
在 test() 中,我将字符串“E_1”传递给函数 getData(),并将类型类 Foo.E_1 作为泛型类型参数插入到 getData<> 中。
实际上,E_1 直到运行时才知道。在运行时,我创建了 entityName 字符串,但我如何才能将此字符串转换为 getData<> 所需的通用参数类型?
谢谢。