Return 来自查询 C#、EF Core 的一个值

Return one value from query C#, EF Core

这是我获取特定 groupId 课程的方法。我想做的是只从数据库 table 中获取 CourseId。此方法现在 returns 列出。我怎样才能只从 table 而不是列表中获取 CourseId 值?

public async Task<List<PupilGroup>> CheckDoesTeacherCanSeeGroupAsync(long teacherId, long? groupId)
    {
        var courseOfGroup = await _applicationContext.PupilGroups
                 .Where(x => x.Id == groupId)
                 .Select(x => new PupilGroup
                 {
                     CourseId = x.CourseId
                 })
                 .ToListAsync();
        return courseOfGroup;
    }

请指导我

不将其设为 ToListAsync() 且不将 int 设为 PupilGroup。

.Select (x => x.CourseId).FirstOrDefault();

而不是将其投影到一个对象中,然后将其变成一个列表。请注意,FirstOrDefault 也可能是总和、最小值等等 - 取决于您实际上是否只有一个项目。

如果我理解正确你的意图 - 试试这个:

var courseOfGroup = await _applicationContext.PupilGroups
                 .FirstOrDefault(x => x.Id == groupId)?.CourseId;
.FirstOrDefault(x => x.CourseId) 

使用 FirstorDefault() 方法 return 序列的第一个元素或默认值(如果元素不存在)。列表 val = 新列表 { };现在,我们无法显示第一个元素,因为它是一个空集合。为此,使用 FirstorDefault() 方法显示默认值