Ошибка при объединении 2 списков LINQ - PullRequest
2 голосов
/ 28 января 2012

У меня проблемы после объединения двух списков LINQ.Я получаю следующую ошибку: запрос содержит ссылку на элементы, определенные в другом контексте данных.

Вот как я построил мои последние 2 списка LINQ:

CAPDBDataContext CAdb = new CAPDBDataContext();
USPDBDataContext USdb = new USPDBDataContext();

var ExceptionList = Special_texts.Where(x => x.name.Equals("ExceptionList"))
                    .Select(x => x.special_text1)
                    .AsEnumerable()
                    .Select(x => x.Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries))
                    .SelectMany(x => x)
                    .ToList();

var USquery = from uscomp in USdb.UScompanies
              join ussect in USdb.USsectors
              on uscomp.sector_code equals ussect.sector_code
              select new
              {
                  uscomp.company_name,
                  uscomp.primary_exchange,
                  ussect.description
              };

var CAtemp = from x in CAdb.companies
             where !ShefalisList.Contains(x.ticker)
             select x;

var CAquery = from temp in CAtemp
             join casect in CAdb.sectors
             on temp.sector_code equals casect.sector_code
             select new
             {                          
                 temp.company_name,
                 temp.primary_exchange,                             
                 casect.description
             };

 var mergedList = USquery.Union(CAquery).ToList();

Что я делаю неправильно

1 Ответ

5 голосов
/ 28 января 2012

Сделайте это вместо:

var mergedList = USquery.AsEnumerable().Union(CAquery).ToList()

Вы не можете Union выполнять запросы к различным базам данных, не сохраняя их результаты в памяти.

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