[英]c# Linq to find children
我在下面有一個 class,我想查看學生是否已經注冊了某個課程。
public class Student
{
[Required]
[Key]
public int Id { get; set; }
[MaxLength(100)]
public string FirstName { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; }
}
public class Enrollment
{
[Required]
public int EnrollmentId { get; set; }
[Required]
public int CourseId { get; set; }
[Required]
public int StudentId { get; set; }
public virtual Course Course { get; set; }
public virtual Student Student { get; set; }
}
目前我有這個查詢來自我的數據庫。
var student= await _context
.Student
.Include(c => c.Enrollments)
.FirstOrDefaultAsync(s => s.Id == StudentId);
如果我在注冊 object 中有 courseId,誰能告訴我一個檢查學生是否已經注冊課程的好方法。
來自一個學生:
var student= await _context
.Student
.Include(c => c.Enrollments)
.FirstOrDefaultAsync(s => s.Id == StudentId);
return student.Enrollments.Any(x => x.CourdeId == aCourseId); //returns true if such an erloment exists
查詢未注冊課程的學生
var students = await _context
.Student
.Include(c => c.Enrollments)
.Where(s => !s.Enrolments.Any(x => x.CourseId == aCourseId));
你可以這樣做:
var student= await _context
.Student
.Include(c => c.Enrollments)
.FirstOrDefaultAsync(s => s.Id == StudentId);
return student.Enrollments.Any(c => c.CourseId == cId && c.RegisterState == RegisterState.Registered)
RegisterState
是一個枚舉,其中包含您在注冊時更新的兩個狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.