Вам необходимо включить дочерние объекты (в данном случае ApplicationUser
s), когда вы запрашиваете свой объект Customer
из базы данных.
Т.е.: для запроса одного Customer
из БД:
_context.Customers.Include(x => x.ApplicationUser).Single(y => y.Id == myCustomerId)
или для всех / нескольких:
_context.Customers.Include(x => x.ApplicationUser).ToList();
Без этого вы увидите точные симптомы, которые вы заметили. БД имеет действительные данные и допустимые ассоциации внешнего ключа, однако ваш сложный дочерний объект имеет нулевое значение, несмотря на наличие действительного внешнего ключа (в данном случае CustomerUserId
) после запроса данных.
Само исключение нулевой ссылки является признаком вышеуказанной проблемы. ApplicationUser
не включен в запрашиваемые данные, поэтому он остается нулевым, затем вы пытаетесь получить доступ к свойству нулевого объекта, что приводит к исключению нулевой ссылки.
Если вы включите свой фактический запрос для получения Customer
s в своем сообщении, то я могу предоставить вам актуальный обновленный запрос, который вам необходим для включения объекта ApplicationUser
в каждый Customer
объект.