Я пытаюсь перевести старый проект на использование LINQ, но столкнулся с довольно серьезной проблемой. Проблема в том, что у нас есть динамические таблицы
для поисковой индексации (CM-система с динамическими атрибутами). В поисковом индексе есть столбцы для каждого атрибута поиска {attribute_x, attribute_y, ...}.
Теперь проблема в том, что я не могу статически определить, какие столбцы доступны (или даже какую таблицу использовать при разделении поисковых индексов), поэтому мне нужен способ сделать это на лету.
Я пытался использовать динамические выражения, но им все еще требуется тип для построения выражения, и я не смог сгенерировать действительный тип по отражению. (Кажется, никакой MemberInfo не генерируется).
Я мог бы также удовлетворить просто возможность генерировать выражение для поиска (но я думаю, что это не простая задача). Что-то вроде
var mySearchIndex= db.GetTable(myTableType);
var query = from p in db.Products from idx in mySearchIndex;
query = query.Where(
"idx." + attributeName + " > 50.0 &&
idx." + attributeName + "
было бы желательно.
Кто-нибудь сталкивался с решением этой проблемы? Последние два дня я просматривал посты в блогах и форумы.