Saya memiliki kode berikut. Saya mendapatkan kesalahan:
"Para pemain ke tipe nilai 'Int32' gagal karena nilai materialized adalah null. Baik parameter generik tipe hasil atau kueri harus menggunakan tipe nullable."
ketika tabel CreditHistory tidak memiliki catatan.
var creditsSum = (from u in context.User
join ch in context.CreditHistory on u.ID equals ch.UserID
where u.ID == userID
select ch.Amount).Sum();
Bagaimana saya bisa memodifikasi kueri untuk menerima nilai nol?
Untuk mengizinkan
Amount
bidang yang dapat dibatalkan, cukup gunakan operator penggabungan nol untuk mengonversi nol ke 0.sumber
int?
pertama.Amount
adalahint
, maka kami sudah yakin itu tidak bisa nol, dan penggabungan tidak perlu. Jika Anda mendapatkan kesalahan yang Anda katakan, makaAmount
itu tidak dapat dibatalkan, itu hanya sebuahint
, dalam hal ini mungkin Anda perlu mengubah kolom dbml linq2sql Anda di desainer untuk memungkinkan nol.Anda menggunakan
aggregate
fungsi yang tidak mendapatkan item untuk melakukan tindakan, Anda harus memverifikasi permintaan linq memberikan beberapa hasil seperti di bawah ini:sumber
Punya pesan kesalahan ini ketika saya mencoba untuk memilih dari tampilan.
Masalahnya adalah pandangan baru-baru ini telah mendapatkan beberapa baris nol baru (di kolom SubscriberId), dan belum diperbarui di EDMX (basis data EF terlebih dahulu).
Kolom harus tipe Nullable agar bisa berfungsi.
var dealer = Context.Dealers.Where (x => x.dealerCode == dealerCode) .FirstOrDefault ();
Sebelum penyegaran tampilan:
Setelah refresh tampilan:
Menghapus dan menambahkan tampilan kembali di EDMX berfungsi.
Semoga ini bisa membantu seseorang.
sumber
Saya telah menggunakan kode ini dan merespons dengan benar, hanya nilai output yang dapat dibatalkan.
sumber
Saya melihat bahwa pertanyaan ini sudah dijawab. Tetapi jika Anda ingin itu dibagi menjadi dua pernyataan, berikut ini dapat dipertimbangkan.
sumber
Mendapat kesalahan ini di Entity Framework 6 dengan kode ini saat runtime:
Pembaruan dari LeandroSoares:
Gunakan ini untuk eksekusi tunggal:
Asli:
Diubah ke ini dan kemudian berhasil:
sumber
Saya juga menghadapi masalah yang sama dan diselesaikan dengan membuat kolom sebagai nullable menggunakan "?" operator.
Terkadang nol dikembalikan.
sumber