Я должен получить данные таблицы из имени таблицы от Linq DataContext.
Вместо этого
var results = db.Authors;
Я должен сделать что-то вроде этого.
string tableName = "Authors";
var results = db[tableName];
Это могло быть любое имя таблицы, которое доступно в DataContext.
Учитывая контекст DataContext
и строку tableName
, вы можете просто сказать:
var table = (ITable)context.GetType()
.GetProperty(tableName)
.GetValue(context, null);
Я не уверен, что передача строк является элегантным решением. Я бы предпочел отправить тип объекта в качестве аргумента метода. Что-то вроде этих строк:
var table = _dataCont.GetTable(typeof(Customer));
Здесь документация MSDN.
Я не уверен, что предлагаю это как ХОРОШЕЕ решение, но если оно вам действительно нужно, вы можете сделать что-то вроде этого:
MyDBContext db = new MyDBContext();
Type t = db.GetType();
PropertyInfo p = t.GetProperty("Authors");
var table = p.GetValue(db, null);
Это даст вам таблицу авторов , как пр. Таблица.