下面的 LINQ 查询生成的 SQL 语句会 SELECT 两张表的所有字段,期望的是只 SELECT PostId
与 Tag.Name
对应的字段,请问如何实现?
var dict = await _tagRepository.GetTagsByPostIds(postIds)
.Include(_ => _.Tag)
.GroupBy(_ => _.PostId)
.ToDictionaryAsync(x => x.Key, y => y.Select(z => z.Tag.Name).ToArray());
在 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());