LINQ Average TimeSpan?

asp.net, c#, datetime, linq, linq-to-sql

Solution

It seems that you have to use a SqlMethods.DateDiff in linq2sql statement (DATEDIFF function if SQL):

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

Problem

I have a database table that contains entries for start time and end time of an event. I would like to take those entries and find the average length of an event. The subtraction is no problem. However, when I try to get the average value, the compiler complains. Here is my current LINQ query: ``` public TimeSpan? getAverageTime() { return (from EventTime in db.EventTimes where EventTime.EventTimesID > 0 select (EventTime.TimeEnd - EventTime.TimeStart)).Average(); } ``` I also tried .Sum() and .Aggregate() so that I could have something to work with, but none are accepted. What is the best method for accomplishing my goal?

Original source