[ad_1]
Saya memiliki dua tabel dalam database yang ingin saya gabungkan dan bekerja dengan data itu.
Jadi saya menggunakan cuplikan kode itu:
var listOfFoundRespIds = (from a in context.Adresses join e in context.ExtraData on a.LFD equals e.lfd where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }) .ToList();
Tabel databasenya sendiri memiliki 31.966.037 entri.
Saat melakukan debug (langsung setelah eksekusi kode) saya memulai iEnumeration Viewer dan melihat konteks. Alamat dan melakukan ekspor csv. Ada 995.101 entri dalam daftar itu. Jadi pada waktu eksekusi saya tidak memiliki semua entri dari tabel utama untuk digunakan.
Mungkin ada yang tahu, bagaimana cara memperbaikinya?
Apa yang saya coba:
Memeriksa IEnumeration Viewer dan csv checkout
Periksa kembali tabel database
Baca dokumen tentang Entity Framework dan Hal SQL lainnya.
Solusi 1
Anda sedang melakukan INNER JOIN
– Anda hanya akan mendapatkan kembali hasil dari Addresses
tabel yang memiliki catatan terkait di ExtraData
meja.
Jika Anda ingin semua catatan dari Addresses
tabel, meskipun mereka tidak memiliki catatan terkait di dalamnya ExtraTable
maka Anda perlu melakukan a LEFT JOIN
.
Lakukan gabungan luar kiri (LINQ dalam C#) – C# | Microsoft Belajar[^]
from a in context.Adresses join ed in context.ExtraData on a.LFD equals e.lfd into edg from e in ed.DefaultIfEmpty() where a.PROJID == 2048 select new { RESPID = e.str03, LFD = e.lfd, PROJID = a.PROJID }
[ad_2]
コメント