@iluxa1810

Linq.Dynamic и DataTable?

Кто-нибудь работал с динамической библиотекой LINQ ?

Как, имея 2 DataTable сделать INNER JOIN ?

Пытаюсь сделать таким образом:
C#Выделить код

var res2 = newDT.AsEnumerable().AsQueryable().Join(oldDT.AsEnumerable(), "new (@0 as T1)",
"new (@0 as T2) ",
"new (T2 as Alias)", new object[] { "t2" } );
но вылетает ошибка:
Additional information: Unknown identifier 'T2'
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
Попробуйте использовать SQL подобный синтаксис. Возможно станет понятнее что как JOIN-ится
var temp = from t in A
                  join b in B on t.Site = b.Site AND t.C = b.C
                  where condition
                  select what you need

Большими буквами помечены коллекции, маленькими - alias.
Ответ написан
Комментировать
@kttotto
пофиг на чем писать
На стадии формирования запроса у Вас не существует объекта T2. Есть разница меду Enumerable и Queryable. Тип Enumerable - LINQ будет выполнять как конвеер, по цепочке выполняя каждое следующее расширение. А Queryable он возьмет все цепочки сразу и будет пытаться сформировать один SQL запрос. Поэтому мне не совсем понятно Ваше преобразование .AsEnumerable().AsQueryable() потому, что я так понимаю, что DT изначально возвращает Queryable.

Вообщем, сделайте вот это "new (@0 as T2) " где то раньше Вашего join.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы