使用datacontext的where linq计算字段的最快总和

本文关键字:字段 计算 datacontext where linq 使用 | 更新日期: 2023-09-27 18:27:32

我想转换我的代码:

using (DatabaseDataContext contestoDB = new DatabaseDataContext())
{
    contestoDB.ObjectTrackingEnabled = false;
    DateTime dataSelezionata = DateTime.Parse(data);
    var elencoOre = (from db in contestoDB.Eventi
        where db.DataPrenotazione.Date == dataSelezionata.Date select db);
    foreach (var o in elencoOre)
        oreOccupate += o.OrePreviste;
}

在这个类似的函数中,获得字段的和,其中:D:

var sum = contestoDB.Eventi.Sum(x => x.OrePreviste);

sum必须是int值。。。谢谢M.W.

使用datacontext的where linq计算字段的最快总和

请参阅以下内容:

var sum = contestoDB.Eventi
    .Where(w => w.DataPrenotazione.Date == dataSelezionata.Date)
    .Sum(x => x.OrePreviste);

您只需进行一个投影,并获取投影值的总和。

var sum = (from db in contestoDB.Eventi
    where db.DataPrenotazione.Date == dataSelezionata.Date
    select db.OrePreviste).Sum();

或者等效地尝试这个:

var sum =  contestoDB.Eventi
    .Where(evt => evt.DataPrenotazione.Date == dataSelezionata.Date)
    .Sum(evt => evt.OrePreviste);