我有一個從第三個源導入數百個表的數據庫。使用實體框架,這些表成爲標記爲E_1,E_2,E_3的ObjectSets ...所有表都有一組公共的列,可以使用一個函數查詢。實體框架和泛型類型參數
我有以下代碼:
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);
}
}
在試驗(),我通過字符串 「E_1」 給函數的getData()和I也插入型類Foo.E_1成的getData <>如泛型類型參數。
實際上,E_1直到運行時才知道。在運行時,我創建了entityName字符串,但是如何將此字符串轉換爲getData <>所需的通用參數類型?
謝謝。
您需要確保E_1是一個類,才能將其用作泛型約束/參數 – Kane