如何使用动态查询获取特定 属性 的总和
How to get the Sum of specific property using dynamic query
如何在动态 linq 查询中使用 Sum。
我有以下数据源:
List<Excuse> li = new List<Excuse>();
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today, ExcuseDuration = new TimeSpan(0, 30, 0), ExcuseType = 0, Id = 1 });
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today.AddDays(1), ExcuseDuration = new TimeSpan(2, 30, 0), ExcuseType = 0, Id = 2 });
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today.AddDays(2), ExcuseDuration = new TimeSpan(2, 0, 0), ExcuseType = 0, Id = 3 });
li.Add(new Excuse { EmpNum = 2345, ExcuseDate = DateTime.Now, ExcuseDuration = new TimeSpan(0, 30, 0), ExcuseType = 0, Id = 4});
I want to get summation of ExcuseDuration
for specific emp_num
in
the same month of the year.
类似于
var langExp2 = "YEAR(ExcuseDate) = @1 AND MONTH(ExcuseDate) = @2 AND emp_num = @3";
var query1 = li.AsQueryable().Where(langExp2, 2019,5,3333)
现在我想得到 ExcuseDuration
?
的总和
类似于:
long result = (long) li.AsQueryable().Where("EmpNum = @0", 3333).Select("it.ExcuseDuration.Ticks").Sum();
var totalDuration = new TimeSpan(result);
如何在动态 linq 查询中使用 Sum。
我有以下数据源:
List<Excuse> li = new List<Excuse>();
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today, ExcuseDuration = new TimeSpan(0, 30, 0), ExcuseType = 0, Id = 1 });
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today.AddDays(1), ExcuseDuration = new TimeSpan(2, 30, 0), ExcuseType = 0, Id = 2 });
li.Add(new Excuse { EmpNum = 3333, ExcuseDate = DateTime.Today.AddDays(2), ExcuseDuration = new TimeSpan(2, 0, 0), ExcuseType = 0, Id = 3 });
li.Add(new Excuse { EmpNum = 2345, ExcuseDate = DateTime.Now, ExcuseDuration = new TimeSpan(0, 30, 0), ExcuseType = 0, Id = 4});
I want to get summation of
ExcuseDuration
for specificemp_num
in the same month of the year.
类似于
var langExp2 = "YEAR(ExcuseDate) = @1 AND MONTH(ExcuseDate) = @2 AND emp_num = @3";
var query1 = li.AsQueryable().Where(langExp2, 2019,5,3333)
现在我想得到 ExcuseDuration
?
类似于:
long result = (long) li.AsQueryable().Where("EmpNum = @0", 3333).Select("it.ExcuseDuration.Ticks").Sum();
var totalDuration = new TimeSpan(result);