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() 方法显示默认值
这是我获取特定 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() 方法显示默认值