【发布时间】:2018-09-06 08:37:13
【问题描述】:
我有这样一个案例研究:
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;
}
IQueryable案例:
当我在第一个查询中更改 - List<CategoryType> 到 IQueryable<CategoryType> 并从查询末尾删除 ToList() 然后我没有任何结果:
问题:
我要求解释,我不明白为什么会这样。我知道IQueryable 在数据库方面做了部分工作。
编辑: 代码运行,图片显示最终效果。
我有:
public IQueryable<CategoryType> CategoryTypePagination { get; set; }
并在ToList()结尾处:
this.CategoryTypePagination = categories.AsQueryable();
在IQueryable 的情况下刚刚删除.AsQueryable()
【问题讨论】:
-
发布实际代码,而不是截图和描述。代码和屏幕截图不匹配。缺少对象定义。您声称您能够将 IQueryable 分配给 List
变量而不会出现编译错误? -
我认为this link 比我的解释尝试更有帮助
-
Panagiotis Kanavos - 我编辑了帖子。
标签: c# linq icollection