从字符串</mytable>获取DbSet <mytable>

时间:2012-11-14 10:23:32

标签: entity-framework

ADO.NET用户第一次尝试使用EF。我正在尝试从表名的字符串中获取表格。 比我想象的更难。 基本上我在这里:

var tableName = "Name.Entities.Measure" + measureType;
var table = Activator.CreateInstance("Name.Entities", tableName);
var unwrapped = table.Unwrap();
var type = unwrapped.GetType();
var dbset = context.Set<type>();

OR

switch (tableString)
{
    case "table1":
    return GetDataFromTable1();
    case "table2":
    return GetDataFromTable2();
}

少代码会很好;)

考虑使用可搜索的所有实体集合来制作扩展方法。 更好的解决方案?

1 个答案:

答案 0 :(得分:3)

我一直在找同样的事情。尝试使用非泛型版本的Set():

var tableName = "Name.Entities.Measure" + measureType;
var type = Type.GetType(tableName);
var dbset = Context.Set(type);