имя динамической таблицы в Entity

Я хочу вызвать метод с именем таблицы, например db.users.select(x=> x.FirstName), но я где-то допустил ошибку, я пишу так, но это возвращает сведения о таблице в одной строке, а не возвращает данные таблицы, которые я хочу, помогите, пожалуйста

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

person Heidi T.    schedule 04.10.2017    source источник
comment
что вам дает db.users.ToList() ?   -  person Shashank Shekhar    schedule 05.10.2017
comment
его работы дают мне данные в таблице пользователей. но я хочу использовать этот метод с другими таблицами, db.schools db.citys, могу ли я просто отправить имя таблицы методу, вот что я спрашиваю   -  person Heidi T.    schedule 05.10.2017


Ответы (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();
}
person Transcendent    schedule 04.10.2017
comment
Большое спасибо, я ищу этот WHERE T: класс, использующий его, работает :) - person Heidi T.; 05.10.2017