Динамическое JOIN в LINQ в Silverlight и WPF - PullRequest
0 голосов
/ 25 октября 2011

Мне нужно выполнить динамический запрос LINQ JOIN. Динамический означает, что число столбцов, к которым я собираюсь присоединиться, не известно до времени выполнения. Я даже не знаю, какое отношение (таблица) будет на левой / правой стороне соединения. Наконец, я не знаю тип объединения перед выполнением программы (INNER/OUTER). Большая гибкость, много проблем.

В WPF можно составить оператор от string до LINQ. Это не так просто в случае Silverlight (отсутствует пространство имен Microsoft.CSharp).

Я считаю, что самый простой способ решить эту проблему - это скомпилировать строку в LINQ. Сейчас я не уверен в этом, поскольку хочу иметь рабочие решения для WPF и Silverlight. У вас есть идеи?

Заранее спасибо за подсказки.

Ответы [ 2 ]

0 голосов
/ 26 октября 2011

Хорошо, может быть, не очень приятно отвечать на ваш собственный вопрос, но я решил свою проблему по-другому, определив дополнительный класс, содержащий объекты с обеих сторон join.Затем их сравнение выполняется с помощью переопределенных методов Equals() и GetHashCode().В моем случае работает как шарм: -)

Спасибо за ответы в любом случае.

0 голосов
/ 25 октября 2011

LINQ действительно больше предназначен для запроса времени компиляции, чем во время выполнения. Боль создания выражений может превзойти функциональность, которую вы, возможно, пытаетесь достичь.

Если вы работаете с LINQ для баз данных, рассмотрите возможность использования EF и EntitySql, а не LINQ, поскольку вам просто нужно построить запрос сущности в виде строки и использовать его, а не пытаться создавать деревья выражений во время выполнения.

...