У меня есть такой пример:
ToList()
дело:
List<CategoryType> categories = (from c in categoryTypes where c.IsSysParam == isSysParamCategory select new CategoryType { Code = c.Code, CreateDate = c.CreateDate, EditDate = c.EditDate, IsProductCategory = c.IsProductCategory, IsSysParam = c.IsSysParam, Name = c.Name, TypeId = c.TypeId, ValueTypes = new List<ValueType>() }).ToList();
List<ValueType> valueTypeList = new List<ValueType>();
foreach (var c in categories.ToList())
{
valueTypeList = categoryTypes.Where(x => x.TypeId == c.TypeId).SelectMany(v => v.ValueTypes).Where(v => v.ParentValueId == null).ToList();
c.ValueTypes = valueTypeList;
}
![enter image description here](https://i.stack.imgur.com/64ado.jpg)
IQueryable
дело:
Когда я изменяю в первом запросе - List<CategoryType>
на IQueryable<CategoryType>
и удаляю ToList()
из конца запроса, я не получаю никакого результата:
![enter image description here](https://i.stack.imgur.com/y5ueU.jpg)
Вопрос:
Я прошу объяснений, я не понимаю, почему это происходит. Я знаю, что IQueryable
делает некоторую часть работы на стороне базы данных.
Edit:
Код работает, картинки показывают конечный эффект.
У меня есть:
public IQueryable<CategoryType> CategoryTypePagination { get; set; }
и в конце ToList()
case:
this.CategoryTypePagination = categories.AsQueryable();
в IQueryable
корпус только что удален .AsQueryable()