C# Linq над динамическим столом
Я хотел бы сделать linq to sql провайдера, который позволяет мне делать запросы к таблице, которая не сопоставлена в datamodel и не известна.
Я знаю только псевдоним таблицы, который я использую для запроса другой известной таблицы для перевода (от псевдонима к реальному имени таблицы), после этого я буду использовать стандартный linq для запроса реальной таблицы, чтения данных и помещения каждого результата в динамический объект.
Я полагаю, что для этого мне нужно определить собственного поставщика linq, который будет манипулировать деревом выражений, а затем вызвать стандартный linq для sql; но сейчас я не знаю, как это сделать.
Так что моя цель состоит в том, чтобы я написал такой код:
List<dynamic> rows = form book in context.Book
where book.Author = "Author"
select book;
Заранее благодарен за любое предложение.
1 ответ
Ты можешь использовать Reflection
:
PropertyInfo table = typeof(ContextType).GetProperty(TableName);
from book in table.GetValue(Context)
...