Я знаком с печально известной ошибкой intellisense, которая не позволяет Visual Studio отображать вложенные данные в качестве допустимого типа, но в этом случае действительный тип не заполняется, и я не могу понять, почему.Вот структура данных:
public class Expense : AuditableEntity
{
public int Id { get; set; }
public ExpenseCategory Category { get; set; }
}
, а дочерний класс расходов:
public class ExpenseCategory : AuditableEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
вот метод доступа в linq:
_appContext.UserProperties
.Include(userProp => userProp.Property)
.ThenInclude(prop => prop.Expenses)
.ThenInclude(expense => expense.Category)
.Where(c => c.UserId == userId)
.SelectMany(x => x.Property.Expenses)
.ToList();
все заполняетсяза исключением категории расходов, и не выдается никакой ошибки, она просто возвращает нуль для категории, есть ли в LINQ что-то, что выглядит неправильно?
Еще раз все остальное заполняется, за исключением категорий расходов на третьем уровне без ошибок и все компилируется.
[ОБНОВЛЕНИЕ]
Это как-то связано сОператор LINQ, если я изменяю на:
_appContext.UserProperties
.Include(userProp => userProp.Property)
.ThenInclude(prop => prop.Expenses)
.ThenInclude(expense => expense.Category)
.Where(c => c.UserId == userId)
.SelectMany(userProp => userProp.Property.Expenses)
.Select(expense => expense.Category)
.ToList();
Теперь он возвращает только категории и ничего больше .... перейти к рисунку