【问题标题】:dynamic table name in EntityEntity中的动态表名
【发布时间】:2017-10-05 08:54:12
【问题描述】:

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

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

【问题讨论】:

  • db.users.ToList() 给你什么?
  • 它的工作原理是给我用户表上的数据。但我想将此方法与另一个表 db.schools db.citys 一起使用,我可以将表名发送到我所要求的方法吗

标签: c# sql entity-framework linq dbcontext


【解决方案1】:

你的问题不是很清楚,但如果你的意思是你想以一种通用的方式来做,那么是的,这是可能的。您可以利用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();
}

【讨论】:

  • 非常感谢,我正在寻找使用它的“WHERE T:class” :)
猜你喜欢
  • 1970-01-01
  • 2021-04-30
  • 2020-06-08
  • 2011-11-11
  • 2011-09-05
  • 2019-03-09
  • 2022-08-20
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多