.Single (c. => c .Id == id) возвращает NULL - PullRequest
0 голосов
/ 30 марта 2020

У меня проблема с кодом ниже. Первый seach (loadToUpdate1) работает. Возвращает значение. CustomerId также имеет значение (в режиме отладки оно равно 4). Клиент с таким идентификатором существует. Это там (в режиме отладки я вижу этого клиента с Id 4 в списке клиентов). Но почему customerToUpdate1 возвращает NULL? Сначала я думал, что они (Id и CustomerId) - это разные типы данных. Но они оба целые числа. Почему .Single (c => c .Id == customerId) не работает? Есть идеи? UPD. Я пробовал сначала вместо одного, но результат тот же (NULL).

var loadToUpdate1 = _context.LoadConfirmations.Include(c=>c.Customer).Single(c => c.Id == loadFormViewModel.LoadConfirmation.Id);

var customerId = loadToUpdate1.CustomerId;
var customerToUpdate1 = _context.Customers.Single(c => c.Id == customerId);

enter image description here

enter image description here

Ответы [ 2 ]

3 голосов
/ 30 марта 2020

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

Если someCustomer может быть нулевым, вам нужно использовать SingleOrDefault.

First вернет первый результат 1: N. Выдает исключение, если есть 0 результатов

FirstOrDefault вернет ноль, или первый результат 0: N

Single вернет первый результат 1: 1. Выдает исключение, если имеется 0 или более 1 результатов

SingleOrDefault вернет ноль или первый результат 0: 1

0 голосов
/ 30 марта 2020

Я не знал, как правильно отлаживать. Я не знал, что отладчик Visual Studio не показывает назначенное значение, когда назначение происходит в точке останова. Спасибо, Caius Jard.

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