Я использую Entity Framework. Есть некая функция, в которой происходит заполнение dataGridView данными из таблицы.
private void data()
{
using (Context context = new Context())
{
var items = from Items in context.Table1
select Items;
dataGridView1.DataSource = items.ToList();
}
}
Но я хочу сделать универсальную функцию, чтобы имя таблицы передавалось через параметр. Подскажите, как нужно модифицировать функцию, чтобы это стало возможным?
Что-то типа этого:
void Test()
{
data(tbl1);
data(tbl2);
}
private void data(SomeType tableName)
{
using (Context context = new Context())
{
var items = from Items in tableName
select Items;
dataGridView1.DataSource = items.ToList();
}
}
Ответ
Если тип сущностей в таблицах одинаковый, то можно попробовать спустить функцию для выбора таблицы параметром:
void Test()
{
data(c => c.tbl1);
data(c => c.tbl2);
}
private void data(Func
dataGridView1.DataSource = items.ToList();
}
}
Если разный - добавьте генерик-параметр
private void data
dataGridView1.DataSource = items.ToList();
}
}
в живую не проверял, возможны опечатки
Если нужно передавать имя таблицы именно как строку - придётся использовать reflection. Постарайтесь избегать этого :)
Комментариев нет:
Отправить комментарий