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 に答える