Давайте предположим, что этот сценарий
Entity
public virtual List<Address> AddressHistory { get; set; }
public Address Address
{
get
{
if (AddressHistory.Any())
{
return AddressHistory.OrderByDescending(x => x.CreationDate).FirstOrDefault();
}
return null;
}
}
При запросе адреса на основе условия, например:
dbContext.MyEntity.Where(e => e.Address.Street == "some stuff");
Я получаю исключение нулевой ссылки.
Почему? Есть ли способ заставить его работать?
РЕДАКТИРОВАТЬ: для тех, кто думает, что Адрес может быть пустым, он работает при этом:
dbContext.MyEntity.Where(e => e.AddressHistory.OrderByDescending(x => x.CreationDate).FirstOrDefault().Street == "some stuff");
РЕДАКТИРОВАТЬ: Парню, который пометил его как дубликат, я не думаю, что вы понимаете проблему здесь. Пожалуйста, удалите маркировку.
Итак, подведем итог:
Если я использую исключение getter => null, потому что потомки (AdressHistory) загружаются не лениво.
Если я использую код внутри геттеров непосредственно в выражении efcore, он работает.
Это означает, что использование геттера не работает в EFCore.