สาเหตุ / แนวทางแก้ไขที่แตกต่างกัน:
ปัญหาของฉันคือฉันไม่ได้รับเอาต์พุตเนื่องจากฉันกำลังเขียนชุดผลลัพธ์จากการเรียก LINQ แบบอะซิงโครนัสไปยังคอนโซลในลูปในบริบทอะซิงโครนัส:
var p = _context.Payment.Where(pp => pp.applicationNumber.Trim() == "12345");
p.ForEachAsync(payment => Console.WriteLine(payment.Amount));
ดังนั้นการทดสอบจึงไม่เขียนลงคอนโซลก่อนที่อ็อบเจ็กต์คอนโซลจะถูกล้างโดยรันไทม์ (เมื่อรันการทดสอบเพียงครั้งเดียว)
วิธีแก้ปัญหาคือการแปลงผลลัพธ์ที่กำหนดเป็นรายการก่อนดังนั้นฉันจึงสามารถใช้ forEach () เวอร์ชันที่ไม่ใช่อะซิงโครนัส:
var p = _context.Payment.Where(pp => pp.applicationNumber.Trim() == "12345").ToList();
p.ForEachAsync(payment =>Console.WriteLine(payment.Amount));