首页 新闻 会员 周边 捐助

EF Core: LINQ GroupBy ToDictionaryAsync 问题

0
悬赏园豆:30 [已解决问题] 解决于 2023-02-11 10:55

下面的 LINQ 查询生成的 SQL 语句会 SELECT 两张表的所有字段,期望的是只 SELECT PostIdTag.Name 对应的字段,请问如何实现?

var dict = await _tagRepository.GetTagsByPostIds(postIds)
    .Include(_ => _.Tag)
    .GroupBy(_ => _.PostId)
    .ToDictionaryAsync(x => x.Key, y => y.Select(z => z.Tag.Name).ToArray());
dudu的主页 dudu | 高人七级 | 园豆:30948
提问于:2023-02-11 08:31
< >
分享
最佳答案
0

在 GroupBy 之前先 Select 就可以了

var dict = await _tagRepository.GetTagsByPostIds(postIds)
    .Include(_ => _.Tag)
    .Select(_ => new { _.PostId, TagName = _.Tag.Name })
    .GroupBy(_ => _.PostId)
    .ToDictionaryAsync(x => x.Key, y => y.Select(_ => _.TagName).ToArray());
dudu | 高人七级 |园豆:30948 | 2023-02-11 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册