Подтвердить что ты не робот

Выражение не может содержать лямбда-выражения

Я извлек объект List<>, как показано ниже (с помощью .Include()):

List<vDetail> entityvDetails =
    context.vDetails
    .Include("payInstallment.appsDetail")
    .Include("payInstallment.appsDetail.application")
    .Include("payInstallment.appsDetail.purposes")
    .Where(e => e.vch_id == 123).ToList();

И затем где-то в коде вперед я попытался отфильтровать запись сущности, как показано ниже:

foreach (vDetail item in lstVDetails)
{
    ... 

    int purposeId = entityvDetails.Where(e => e.sad_id == item.sad_id).FirstOrDefault().payInstallment.appsDetail.purposes.prp_id;

    ...
}

Копирование компиляции совершенное. Однако время выполнения, возвращающее следующую ошибку (хотя все навигаторы включены):

Object reference not set to an instance of an object.

Итак, я настроил для отладки использование окна часов. Теперь, анализируя приведенный ниже оператор в окне просмотра:

entityVoucherDetails.Where(e => e.sad_id == item.sad_id).FirstOrDefault()

окно сгенерированное после ошибки:

Выражение не может содержать лямбда-выражения.

Пожалуйста, если кто-нибудь может сказать мне, что может быть причиной?

4b9b3361

Ответ 1

Оценка лямбда-выражений в отладчике (окно просмотра) еще не поддерживается.

Для этого существует открытый запрос функции.

Для отладки вашей проблемы вы должны назначить результат выражения лямбда выделенной переменной и использовать ее в следующих операциях.

var entity = entityvDetails.Where(e => e.sad_id == item.sad_id).FirstOrDefault();

Обновление 08/2014: Microsoft опубликовала обновление по запросу функции, объявив, что они начали работать над ней:

Итак, где мы стоим.

  • 1) Мы хотим, чтобы это работало так же, как и вы. Его не рассматривают - его ход.
  • 2) Мы выяснили, как заставить его работать; он просто требует переписывать все.
  • 3) Переписывали все.
  • 4) Переписывание всего требует много времени и много тестирования.

Обновление 11/2014: Microsoft, наконец, внедрила его с некоторыми ограничениями в VS2015. Читайте здесь.