我想在 Razor 中显示每个国家的学生人数和每个班级的学生人数,我为(学生、班级、国家)创建了 3 个不同的班级,如下所示:-
Student.cs
public class Students
{
[Key]
public int StudentID { get; set; }
public string StudentName { get; set; }
public DateTime StudentDob { get; set; }
[ForeignKey("ClassID")]
public Classes classes { get; set; }
[ForeignKey("CountryID")]
public Countries countries { get; set; }
}
Countries.cs
public class Countries
{
[Key]
public int CountryID { get; set; }
public string CountryName { get; set; }
public List<Students> Students { get; set; }
}
Classes.cs
public class Classes
{
[Key]
public int ClassID { get; set; }
public string ClassName { get; set; }
public List<Students> Students { get; set; }
}
我还创建了另外 2 个模型来存储计数。
public class CountryViewModel
{
public string Countries { get; set; }
public int count { get; set; }
}
public class ClassViewModel
{
public string Classes { get; set; }
public int count { get; set; }
}
之后我创建了服务
public List<CountryViewModel> ShowCountryStats()
{
return _appDbContext.Students.Include("countries")
.GroupBy(e => e.countries.CountryName)
.Select(y => new CountryViewModel
{
Countries = y.Key,
count = y.Count()
}).ToList();
}
public List<ClassViewModel> ShowClassStats()
{
return _appDbContext.Students.Include("classes")
.GroupBy(e => e.classes.ClassName)
.Select(y => new ClassViewModel
{
Classes = y.Key,
count = y.Count()
}).ToList();
}
我在 studentinfo.razor 中调用它们
private CountryViewModel countryviewModel = new();
private List<CountryViewModel> CountryViewModel = new();
private ClassViewModel myClassmodel = new();
private List<ClassViewModel> myClassModel = new();
private Classes classe = new();
private List<Classes> classes = new();
private Countries country = new();
private List<Countries> countries = new();
private List<CountryViewModel> GetCountriess()
{
CountryViewModel = _studentService.ShowCountryStats();
return CountryViewModel;
}
private List<ClassClassModel> ShowCountryStat()
{
myClassModel = _studentService.ShowClassStats();
return myClassModel;
}
现在我想显示结果如下,但我不知道如何在 .razor
Country count
US 6
UK 8
Class count
A 5
B 15