C# 如何计算每个学生的学费:什么问题?
我正在用EF6开发一个ASP.NETMVC5应用程序。我有大约5000个实体,我正在通过LINQ查询它们,以收集所有学费总额的学生: 模型C# 如何计算每个学生的学费:什么问题?,c#,asp.net-mvc,performance,linq,entity-framework-6,C#,Asp.net Mvc,Performance,Linq,Entity Framework 6,我正在用EF6开发一个ASP.NETMVC5应用程序。我有大约5000个实体,我正在通过LINQ查询它们,以收集所有学费总额的学生: 模型 public class Student { public string ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual IList<Payment>
public class Student
{
public string ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual IList<Payment> Payments { get; set; }
}
public class Payment
{
public string ID { get; set; }
public double Tuition { get; set; }
public int Month { get; set; } //Tuition added monthly
public Student Student { get; set; }
}
我想查询的是每个学生的学费总额:
var result = {{student1, 5500}, {student2, 6100}, ...}
实现这一点的最佳方法是什么?您可以使用此LINQ查询,并让EF构造查询,然后由SQL server完成这项工作
context.DbSet<Student>().Select(o => new {
Student = o,
TotalTution = o.Payments.Sum(p => p. Tution)
)}
context.DbSet().Select(o=>new{
学生=o,
TotalTution=o.Payments.Sum(p=>p.Tution)
)}
您可以使用此LINQ查询,并让EF构造查询,然后由SQL server完成这项工作
context.DbSet<Student>().Select(o => new {
Student = o,
TotalTution = o.Payments.Sum(p => p. Tution)
)}
context.DbSet().Select(o=>new{
学生=o,
TotalTution=o.Payments.Sum(p=>p.Tution)
)}
一个可读的版本,如果你喜欢像我这样的小羔羊:)
一个可读的版本,如果你喜欢像我这样的小羔羊:)
var query = from s in DbContext.Students
select new {student=s, totalTuition=s.Payments.Sum(p=>p.Tuition)};