C# EF4:获取指定为字符串的EntitySet

C# EF4:获取指定为字符串的EntitySet,c#,linq,entity-framework-4,linq-to-entities,C#,Linq,Entity Framework 4,Linq To Entities,我有一个包含许多单独表的数据库,我需要将它们的内容填充到它们的实体中 目前,我为每个表准备了如下内容: try { using(DBContext context = new DBContext()) { var vehicleTypes = context.VehicleTypes; return vehicleTypes; } } catch(Exception ex) { //handle error } var vehicleTy

我有一个包含许多单独表的数据库,我需要将它们的内容填充到它们的实体中

目前,我为每个表准备了如下内容:

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);
我所追求的最好描述如下:

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);
其中
车辆实体
建筑实体
(…)是实体模型中的实体。 我知道我没有明确的选择,但是类似的方式会很好。扩展方法也是一个选项

我正在使用EntityFramework4.0,POCO自跟踪实体(无代理)

谢谢

编辑:我最近的一次尝试是:

    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...
        }
    }
公共静态IEnumerable GetTableContent(),其中tenty:class
{
尝试
{
使用(var context=new DBEntities())
{
var result=context.executestrequery(“SELECT*FROM”+typeof(tenty.Name);//表名对应于实体类型类名
返回结果;
}
}
捕获(例外情况除外)
{
//处理错误。。。
}
}
但我得到了一个错误:

数据读取器与指定的“DBEntities.MyEntity”不兼容。“Id”类型的成员在数据读取器中没有同名的对应列。


这是真的-名称不匹配-但我想它会从基于edmx定义的查询映射表?我如何才能做到这一点?

在尝试将其变为“通用”之前,先从实际有效的代码开始

result=context.ExecuteStoreQuery(“选择某物作为ID,…,来自某物…”);

这有什么帮助?如果你只是好奇它是否有效——它确实有效(我试过)。但是,这不是我所需要的——我需要它是“通用的”(也就是说,我需要它能够映射到edmx定义),那么为什么要进行存储查询呢?这只会让事情变得更难。
ObjectContext.CreateObjectSet
有什么问题?我以为你在问如何使用
ExecuteStoreQuery
同意。使用
CreateObjectSet
——您可以通过多重化服务为泛型动态执行此操作。