Объединение двух отдельных запросов linq - PullRequest
3 голосов
/ 11 февраля 2011

У меня есть запрос LINQ, который приводит массив записей о заданиях.Из-за ограничений / ограничений LINQ-To-SQL, касающихся межконтекстных запросов, я не могу выполнить объединение таблицы, и поэтому два поля для записи Job пусты.

Однако я могу получить их повыполнение отдельного запроса LINQ.

У меня вопрос: можно ли легко заполнить эти два поля, например, путем объединения этих двух запросов?- и если да, то как?

query1.Join(query2,..... and so on);

Заранее спасибо.

РЕДАКТИРОВАТЬ

var results = query1.Join(query2,
                        job => job.JobID,
                        other => other.JobID,
                        (job, other) => new
                        {
                            MissingField = other.Field,
                            OtherMissingField = other.OtherField
                        });

Я получаю сообщение об ошибке: Аргументы типа для метода 'System.Linq.Enumerable.Join (System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable, System.Func, System.Func, System.Func) 'не может быть выведен из использования.Попробуйте указать аргументы типа явно.

1 Ответ

2 голосов
/ 11 февраля 2011

Если данные имеют такой размер, что вы можете перенести их в память, вы можете выполнить соединение в LINQ-to-Objects;просто добавьте .ToList() или .AsEnumerable() к исходным запросам - LINQ для присоединения к ним останется прежним.

Однако;это не может быть использовано для подключения на сервере.Для этого либо отбросьте нужные вам таблицы в единый контекст данных, либо используйте читы и используйте TSQL для этого запроса.Метод LINQ-to-SQL ExecuteQuery<T> очень удобен для таких целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...