ด้วยการเปลี่ยนแปลงใน. NET Core 3.0 ฉันได้รับ
... NavigationExpanding ExpressionVisitor 'ล้มเหลว สิ่งนี้อาจบ่งบอกถึงข้อบกพร่องหรือข้อ จำกัด ใน EF Core ดู https://go.microsoft.com/fwlink/?linkid=2101433สำหรับข้อมูลรายละเอียดเพิ่มเติม) ---> System.InvalidOperationException: การประมวลผลนิพจน์ LINQ 'GroupJoin, ...
นี่เป็นแบบสอบถามที่ง่ายมากดังนั้นจึงต้องมีวิธีดำเนินการใน. 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();
โดยทั่วไปฉันกำลังมองหาคำสั่ง Linq (หรือไวยากรณ์ของวิธีการข้างต้น) ซึ่งจะเข้าร่วมการศึกษาไปยังผู้ป่วยและตั้งค่าการศึกษาเป็นรายการว่างหรือโมฆะหากไม่มีการศึกษาสำหรับผู้ป่วยที่ได้รับ
ความคิดใด ๆ สิ่งนี้ทำงานใน. NET Core 2.2 นอกจากนี้ลิงค์ MSFT ด้านบนยังกล่าวอีกว่าการเปลี่ยนแปลงการทำลายคีย์นั้นเกี่ยวข้องกับการประเมินฝั่งไคลเอ็นต์และหลีกเลี่ยงการที่แบบสอบถามที่สร้างขึ้นอ่านตารางทั้งหมดซึ่งจะต้องเข้าร่วมหรือกรองฝั่งไคลเอ็นต์ อย่างไรก็ตามด้วยแบบสอบถามง่ายๆนี้การเข้าร่วมควรเป็นฝั่งเซิร์ฟเวอร์ที่ทำได้