The following code is one possibility (there may be more elegant solutions to
this) to handle a nullable average from a linq query. The problem arises when
the linq query does not return a result, thus the average being null. If you
don’t use a nullable type, you’ll get an exception. To get a nullable average
from an integer value you’ll need to provide a transform function to the
double? nullableAverage = (from m in dataContext.Moods join g in dataContext.Groups on m.GroupGUID equals g.GUID where g.GUID == groupGUID select m.Level) .Average<int>(x => new double?(x)); int average = (int)Math.Round(nullableAverage.HasValue ? nullableAverage.Value : 0, 0); // ...