La distribution de valeur de type 'Double' a échoué parce que la matérialisée valeur est null

CODE:

double cafeSales = db.InvoiceLines
    .Where(x =>
        x.UserId == user.UserId &&
        x.DateCharged >= dateStart &&
        x.DateCharged <= dateEnd)
    .Sum(x => x.Quantity * x.Price);

ERREUR:

La distribution de valeur de type 'Double' a échoué parce que la matérialisée valeur est null. Le résultat de ce type de paramètre générique ou la requête doit utiliser un type nullable.

CE QUE J'AI DÉJÀ VU:

La conversion vers le type de la valeur 'Int32" a échoué parce que le matérialisée valeur est null

La conversion vers le type de la valeur 'Virgule' a échoué parce que la matérialisée valeur est null

CE QUE J'AI ESSAYÉ:

double cafeSales = db.InvoiceLines
    .Where(x =>
        x.UserId == user.UserId &&
        x.DateCharged >= dateStart &&
        x.DateCharged <= dateEnd)
    .DefaultIfEmpty()
    .Sum(x => x.Quantity * x.Price);

Et:

double? cafeSales = db.InvoiceLines
    .Where(x =>
        x.UserId == user.UserId &&
        x.DateCharged >= dateStart &&
        x.DateCharged <= dateEnd)
    .Sum(x => x.Quantity * x.Price);

Aucune de ces travaux. Je sais que la cause du problème est qu'il n'y a pas de lignes dans la table pour le nom je suis de passage dans. Dans ce cas, je préfère que Sum() revient tout juste d'un 0 à moi. Des idées?

InformationsquelleAutor Matt | 2013-03-08