C # Entity Framework .Any () Невозможно создать постоянное значение типа «Анонимный тип» - PullRequest
0 голосов
/ 02 октября 2018

Я получаю список своей базы данных, выбираю определенные вещи, затем я хочу запросить другую базу данных, в которой исходный список содержит эту ссылку на работу базы данных

 var jobRefs = context.jobs.Where(j => j.LSM_Status == null &&
                                       j.despatched_time == null
                                       )
      .Select(x => new { x.job_ref, x.volumes_env, x.postout_deadline , x.UniqNo })
      .ToList();


var UpdatedRefs = context.customerslas.Where(c => jobRefs.Any(z=>z.job_ref == c.job_ref) &&
                                      (c.invoiced == 1 ||
                                       c.invoiced == 2) &&
                                       c.active == 1)
                                       .Select(c => c.job_ref)
                                       .ToList();

И получить эту ошибку

Невозможно создать постоянное значение типа «Анонимный тип».В этом контексте поддерживаются только примитивные типы или типы перечисления. '

1 Ответ

0 голосов
/ 02 октября 2018

ToList () в первом первом запросе извлекает данные в коллекцию в памяти, в то время как второй запрос, где вы сравниваете данные, находится в базе данных.Чтобы решить эту проблему, вы должны сделать их в той же области, дБ или памяти.

Самый простой и рекомендуемый способ - просто удалить ToList () из первого запроса

var jobRefs = context.jobs.Where(j => j.LSM_Status == null &&
                                       j.despatched_time == null
                                       )
      .Select(x => new { x.job_ref, x.volumes_env, x.postout_deadline , x.UniqNo });


var UpdatedRefs = context.customerslas.Where(c => jobRefs.Any(z=>z.job_ref == c.job_ref) &&
                                      (c.invoiced == 1 ||
                                       c.invoiced == 2) &&
                                       c.active == 1)
                                       .Select(c => c.job_ref)
                                       .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...