Dengan perubahan pada .NET Core 3.0 saya mendapatkan
... NavigationExpandingExpressionVisitor 'gagal. Ini mungkin mengindikasikan bug atau batasan di EF Core. Lihat https://go.microsoft.com/fwlink/?linkid=2101433 untuk informasi lebih rinci.) ---> System.InvalidOperationException: Pemrosesan ekspresi LINQ 'GroupJoin, ...
Ini adalah permintaan yang sangat sederhana sehingga harus ada cara untuk melakukannya di .NET CORE 3.0:
var queryResults1 = await patients
.GroupJoin(
_context.Studies,
p => p.Id,
s => s.Patient.Id,
(p, studies) => new
{
p.DateOfBirth,
p.Id,
p.Name,
p.Sex,
Studies =studies.Select(s1=>s1)
}
)
.AsNoTracking().ToListAsync();
Saya pada dasarnya mencari kueri Linq (atau sintaksis metode seperti di atas) yang akan menggabungkan Studi ke Pasien, dan menetapkan Studi ke daftar kosong atau nol jika tidak ada studi untuk pasien yang diberikan.
Ada ide? Ini bekerja di .NET Core 2.2. Juga tautan MSFT di atas menyebutkan bahwa perubahan kunci terkait dengan evaluasi sisi klien dan menghindari bahwa kueri yang dihasilkan membaca seluruh tabel yang kemudian harus bergabung atau difilter sisi klien. Namun dengan permintaan sederhana ini, bergabung harus sisi server mudah dilakukan.
sumber
groupby
menjadi gabungan kiri di mana hal itu tidak menarik lebih banyak baris dari yang diharapkan. Saya memposting komentar yang sesuai.Persis masalah yang sama dan perjuangan besar dengannya. Ternyata .net Core 3.0 tidak mendukung Bergabung atau Groupjoin dalam sintaks metode (belum?). Bagian yang menyenangkan adalah, itu berhasil dalam sintaks Query.
Coba ini, ini sintaks kueri dengan sedikit sintaks metode. Ini diterjemahkan dengan baik ke kueri SQL yang benar dengan gabungan luar kiri yang bagus dan diproses pada basis data. Saya belum punya model sehingga Anda perlu memeriksa sintaksnya sendiri ....
sumber