【发布时间】:2016-04-04 19:03:49
【问题描述】:
我有一个数据库,其中包含从第三个来源导入的数百个表。使用实体框架,这些表变成了标记为 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 所需的通用参数类型?
谢谢。
【问题讨论】:
-
您需要确保 E_1 是一个类才能将其用作泛型类型约束/参数
标签: c# entity-framework generic-type-argument