เริ่มแรกฉันมีรายการดังกล่าว:
List<Car> cars = db.Car.Where(x => x.ProductionYear == 2005).ToList();
จากนั้นฉันพยายามเข้าร่วมรายการนี้กับตารางใหญ่สองตารางโดยใช้ LINQ ดังนี้:
var joinedList = (from car in cars
join driver in db.Driver.ToList()
on car.Id equals driver.CarId
join building in db.Building.ToList()
on driver.BuildingId equals building.Id
select new Building
{
Name = building.Name;
Id = building.Id;
City = building.City;
}).ToList();
ทั้งตาราง Driver
และ Building
มีประมาณ 1 ล้านแถว เมื่อฉันรันการเข้าร่วมนี้ ฉันพบว่ามีข้อยกเว้นหน่วยความจำไม่เพียงพอ ฉันจะทำให้การเข้าร่วมนี้ทำงานได้อย่างไร ฉันควรดำเนินการเข้าร่วมกับฐานข้อมูลหรือไม่ ถ้าใช่ ฉันจะนำรายการ cars
ไปยัง db ได้อย่างไร ขอบคุณล่วงหน้า.
db.Driver.ToList()
ลบToList()
ออกจากสิ่งนี้ มันจะป้องกันการดึงตารางไดรเวอร์ทั้งหมดในหน่วยความจำ ในทำนองเดียวกันจากdb.Building
- person Rahul Singh   schedule 30.06.2017.ToList()
สุดท้ายด้วย.Count()
แล้วตรวจสอบ - person Zein Makki   schedule 30.06.2017