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)
...
Другие вопросы по тегам