我正在创建一个简单的学生应用程序,并希望表中的一行显示参加特定课程的学生人数(即,每次我批准某个申请时,参加该课程的学生人数应自动递增1)。我已经尝试了所有的方法,会话,linq,但是我不能这样做。下面是我的一些代码,任何建议都是值得欢迎的:
public class Student
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string Email { get; set; }
public string Telephone { get; set; }
public string Status { get; set; }
public int IdCourse { get; set; }
public Course Course { get; set; }
}
public class Course
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public int NumberOfStudents { get; set; }
public ICollection<Student> Student { get; set; }
}
public ActionResult Index()
{
return View(db.Student.Include(b => b.Course).ToList());
}
@using StudentCourse.Models
@model List<Student>
@{
ViewBag.Title = "Index";
}
<table>
<tr>
<th>Title</th>
<th>NumberOfStudents</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Course.Title<td>
<td>@item.Course.NumberOfStudents</td>
</tr>
}
</table>当学生选择某个课程时,我应该批准或拒绝她/他的申请(Status属性):
@Html.RadioButtonFor(b => b.Status, "Accepted", false) Accepted
@Html.RadioButtonFor(b => b.Status, "Rejected", true) Rejected已批准的申请数量应以自动递增的方式显示在:
<td>@item.Course.NumberOfStudents</td>发布于 2020-02-05 17:48:57
您的代码不完整,但如果我获得了您想要的内容,请执行以下操作:
上更新获取的行
发布于 2020-02-05 18:01:08
您可以通过在设置的学生部分更新学生数量来保持学生数量的更新,如下所示:
public class Course
{
private ICollection<Student> _students;
public int Id { get; set; }
public string Title { get; set; }
public int NumberOfStudents { get; set; }
public ICollection<Student> Students
{
get
{
return _students;
}
set
{
_students = value;
NumberOfStudents = _students?.Count ?? 0;
}
}
}这意味着您不需要将信息保存到数据库来更新numberOfStudents。您还可以在NumberOfStudents的get部分执行学生的Count属性。
https://stackoverflow.com/questions/60072594
复制相似问题