实体中的动态表名称

时间:2017-10-04 23:36:13

标签: c# sql entity-framework linq dbcontext

我想用像db.users.select(x=> x.FirstName)这样的表名来调用方法,但是我在某个地方犯了一个错误,我这样写了但这会返回关于一行表的详细信息,而不是返回我想要的表数据,请帮助< / p>

    public void LoadToGrid(string dbTableName)
    {
      dataGridView1.DataSource = db.GetType().GetMember(dbTableName).ToList();    
    }

1 个答案:

答案 0 :(得分:2)

你的问题不是很明确,但如果你的意思是你想以通用的方式做到这一点,那么是的,这是可能的。您可以利用Set<T>方法。例如:

public void LoadToGrid<T>(GridType grid) where T: class, new() {
    grid.DataSource = dbContext.Set<T>().ToList();
}

要自定义网格中的数据字段,您可以添加此重载

public void LoadToGrid<T>(GridType grid, Expression<Func<T,Object>> selectExpression) where T: class, new() {
    grid.DataSource = dbContext.Set<T>().Select(selectExpression).ToList();
}
相关问题