public static IQueryable DistinctBy( this IQueryable source, Expression> keySelector) { return source.GroupBy(keySelector).Select(grouping => grouping.FirstOrDefault()); }