【发布时间】:2021-12-28 04:36:02
【问题描述】:
我从我的存储过程中得到了一条记录,并将数据绑定到AppCategoryDataModel。
现在,我想迭代该数据并创建一个 List<CategoryData> 列表,将 DetailId、Title 和 Description 添加为列表,按 AppCategoryId 分组
public class AppCategoryDataModel
{
public Nullable<int> AppCategoryId { get; set; }
public string AppCategoryName { get; set; }
public Nullable<int> DetailId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public Nullable<bool> IsShow { get; set; }
}
我尝试过的:
var res = db.Database.SqlQuery<AppCategoryDataModel>($"call getAppCategoryData({memberId}, {unitId}, {taxId})")
.Select(z => new FirstLevelCategory
{
AppCategoryId = z.AppCategoryId.GetValueOrDefault(),
AppCategoryName = z.AppCategoryName,
IsShow = z.IsShow,
CategoryData = ??
}).ToList();
FirstLevelCategory属性是:
public class FirstLevelCategory
{
public int AppCategoryId { get; set; }
public string AppCategoryName { get; set; }
public bool? IsShow { get; set; }
public IEnumerable<Details>CategoryData { get; set; }
}
如何使用 LINQ 而不是使用 group by 子句来做到这一点?
【问题讨论】:
-
为什么不想使用 Group by?
-
有很多字段可供选择,使用 group by 我认为它会创建更复杂的查询。
-
首先让它工作,然后在必要时优化。也不要低估查询提供者的翻译能力
-
GroupBy by AppCategoryId, AppCategoryName, IsShow,就是你需要的。
-
你能举个例子吗? @SvyatoslavDanyliv