0

我有一个用 EF 5.0.0 映射的数据库

我在一些列表中显示数据。我的数据以“经典方式”检索:

using (myContext db = new myContext())
{

    var products = db.products.Select(p => p).ToList();
}

我必须尽可能多地这样做,

有什么办法可以动态地做到这一点?:

using (myContext db = new myContext())
{
    type currentType = myTable1Type
    var currentList = db.currentType.Select(p => p).ToList();
}
4

3 回答 3

2

尝试使用DbContext.Set方法(类型)

using (myContext db = new myContext())
{
    type currentType = myTable1Type
    var currentList = db.Set(currentType).Select(p => p).ToList();
}
于 2013-04-12T16:15:27.593 回答
0

这种方法对我有用:

IDbSet GetDbSet(Type currentType, Context db)
{
    dynamic instance = Activator.CreateInstance(currentType);
    return GetDbSetFromInstance(instance, db);
}

IDbSet GetDbSetFromInstance<T>(T instance, Context db)
    where T : class
{
    var set = db.Set<T>();
    if (set == null)
    {
        throw new Exception();
    }
    return set;
}
于 2013-04-12T16:27:22.300 回答
0

看看 Context.Set() 方法组。

于 2013-04-12T16:15:35.377 回答