KODU:değer türü 'Çift' için döküm başarısız
double cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.Sum(x => x.Quantity * x.Price);
HATA:
değer türü 'Çift' için döküm başarısız hayata değer çünkü boş. Sonuç türünün genel parametresi veya sorguda null bir tür kullanılmalıdır.
Ben ZATEN GÖRDÜĞÜM NE:
The cast to value type 'Int32' failed because the materialized value is null
The cast to value type 'Decimal' failed because the materialized value is null
ne denedim:
double cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.DefaultIfEmpty()
.Sum(x => x.Quantity * x.Price);
Ve:
double? cafeSales = db.InvoiceLines
.Where(x =>
x.UserId == user.UserId &&
x.DateCharged >= dateStart &&
x.DateCharged <= dateEnd)
.Sum(x => x.Quantity * x.Price);
bu işin ne. Sorunun nedeninin, bu tablo içinde geçirdiğim UserId için hiçbir satır bulunmadığını biliyorum. Bu durumda, Sum() 'ı yalnızca 0'a döndürmeyi tercih ederim. Herhangi bir fikir? Toplama herhangi doğru sonuçları varsa
En uygun ve verimli olan aşağıdaki çözümlerden yanıt olarak işaretlemelisiniz. –
Başkalarına güvenmek için aşağıdan bir cevap kabul etmelisiniz. –
Olası çoğaltılabilir [Döndürülecek değer türü 'Int32' başarısız oldu, çünkü maddi değeri sıfırdır] (http://stackoverflow.com/questions/6864311/the-cast-to-value-type-int32-failed-because- -maddileştirilmiş değer-null) –