我有一个数据库表,其中包含事件开始时间和结束时间的条目。我想输入这些条目并找到事件的平均时长。减法没问题。但是,当我尝试获取平均值时,编译器会提示。

这是我当前的LINQ查询:

public TimeSpan? getAverageTime()
    {
        return (from EventTime in db.EventTimes
                where EventTime.EventTimesID > 0
                select (EventTime.TimeEnd - EventTime.TimeStart)).Average();
    }

我还尝试了.Sum()和.Aggregate(),以便可以使用某些东西,但都不接受。

实现目标的最佳方法是什么?

最佳答案

看来您必须在linq2sql语句中使用SqlMethods.DateDiff(如果为SQL,则为DATEDIFF函数):

public int getAverageTime()
    {
        return (from EventTime in db.EventTimes
                where EventTime.EventTimesID > 0
                select (SqlMethods.DateDiffMinute(EventTime.TimeStart, EventTime.TimeEnd)).Average();
    }

关于c# - LINQ平均时间跨度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3086087/

10-09 07:26