c#林克去找孩子
我在下面有一节课,我想检查一下学生是否参加了某一课程c#林克去找孩子,c#,C#,我在下面有一节课,我想检查一下学生是否参加了某一课程 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 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; }
}
如果我在注册对象中有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(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
是一个具有两种状态的枚举,您可以在注册时进行更新。您可以执行以下操作:
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
是一个具有两种状态的枚举,您可以在注册时对其进行更新。您可以在注册对象中添加一个属性,如enum
指示学生是否注册,或者您可以通过在查询中使用然后Include
进一步执行Include
,然后获取课程
上课并检查课程
中的属性。我希望我正确理解了您的问题。您可以在注册对象中添加一个属性,如枚举
指示,如果学生
已注册或未注册,或者您可以通过在查询中使用然后包含
进一步执行包含
,获取课程
类,并在课程
。我希望我正确理解了你的问题。