У меня есть база данных с несколькими сотнями таблиц, импортированных из третьего источника. Используя структуру сущностей, эти таблицы становятся объектами с метками E_1, E_2, E_3 ... Все таблицы имеют общий набор столбцов и могут быть запрошены с помощью одной функции.Entity Framework и параметр общего типа
У меня есть следующий код:
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(), и я также вставить тип класса Foo.E_1 в GetData <> как параметр типового типа.
В действительности E_1 неизвестен до времени выполнения. Во время выполнения я создаю строку entityName, но как я могу затем преобразовать эту строку в общий тип параметра, необходимый для getData <>?
Спасибо.
Вам нужно будет убедиться, что E_1 является классом, чтобы использовать его как ограничение общего типа/параметр – Kane