有没有办法按类型获取实体框架表的IQueryable?

时间:2013-10-28 20:14:29

标签: entity-framework entity-framework-4

我想做的是:

IQueryable<T> getGenericEntityTable<T>(){
  // grab entity table based on context.
  return getIQueryable(m_context, T);
}

所以我称之为:

IQueryable<MyDBTable_Employee> list = getGenericEntityTable<MyDBTable_Employee>();

list.Where(f => f.employee_name == "Bob");

必须有一种方法可以在EntityFramework中执行此操作,而无需不断创建具有特定实体调用的新文件。

修改

尝试这样做

public IQueryable<T> GetTable<T>(ObjectContext context) where T : class
        {
            var table = context.CreateObjectSet<T>().AsQueryable<T>();
            return table;
        }

1 个答案:

答案 0 :(得分:1)

尝试使用DbContext API

public IQueryable<T> GetTable<T>(DbContext context)
  where T : class
{
  var table = context.Set<T>();
  return table;
}

尝试使用ObjectContext API

public IQueryable<T> GetTable<T>(ObjectContext context)
  where T : class
{
  var table = context.CreateObjectSet<T>()
  return table;
}