У меня есть база данных со множеством отдельных изолированных таблиц, и мне нужно заполнить их содержимое их сущностями.
В настоящее время у меня есть для каждой таблицы что-то вроде этого:
try
{
using(DBContext context = new DBContext())
{
var vehicleTypes = context.VehicleTypes;
return vehicleTypes;
}
}
catch(Exception ex)
{
//handle error
}
То, что я ищу, лучше всего описать примерно так:
var vehicleTypes = context.GetEntitySet(VehicleEntity);
var buildingTypes = context.GetEntitySet(BuildingEntity);
, где VehicleEntity
, BuildingEntity
(...) - сущности из модели сущностей.
Я знаю, что у меня нет этой опции явно, но что-то подобное было бы неплохо. Метод расширения также является опцией ...
Я работаю с EntityFramework 4.0, POCO Self Tracking Entities (без прокси).
Спасибо
edit : Моя последняя попытка была такой:
public static IEnumerable<TEntity> GetTableContent<TEntity>() where TEntity:class
{
try
{
using (var context = new DBEntities())
{
var result = context.ExecuteStoreQuery<TEntity>("SELECT * FROM " + typeof(TEntity).Name); //the table names correspond to Entity type class names
return result;
}
}
catch (Exception ex)
{
//handle error...
}
}
но я получаю ошибку:
The data reader is incompatible with the specified 'DBEntities.MyEntity'. A member of the type, 'Id', does not have a corresponding column in the data reader with the same name.
и это правда - имена не совпадают - но я подумал, что это сопоставило бы таблицу из запроса на основе определения edmx? Как я могу получить это право?