我正在构建一个WPF应用程序,我的模型是这样的:
public class Employee
{
public int Matricule { get; set; }
public string Nom { get; set; }
public string Prenom { get; set; }
public double Salaire { get; set; }
public Employee() { }
}
public class Ouvrier : Employee
{
public Ouvrier() { }
}
public class Manager : Employee
{
public List<Ouvrier> Ouvriers { get; set; }
public Manager()
{
}
}
所以经理的薪水是[他的工资+奖金(他工人工资总额的2%)]。如何使用Entity Framework计算他的薪水?我应该在Manager
构造函数中还是在ViewModel中进行计算?
答案 0 :(得分:1)
您可以在Outviers Salary属性上调用Sum
方法,并将其添加到经理salaray。
var mgrWithBonus = dbContext.Managers.Select(s => new Manager
{
Nom = s.Nom,
Salaire = s.Salaire +
(s.Ouvriers!=null? s.Ouvriers.Select(f => f.Salaire).Sum()*0.02:0)
}).ToList();
答案 1 :(得分:0)
在这里Linq声明获得所有经理的最终薪水。我怀疑经理是DbSet提供的DbCon:
var managersWithFilnalSalary = managers.Select(m =>
new {m.Nom, FinalSalary = m.Salaire + (m.Ouvriers.Sum(o => o.Salaire)*0.02)});