Изначально у меня такой список:
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.Driver.ToList()
Удалите из этогоToList()
, это предотвратит выборку всей таблицы драйверов в памяти. Аналогично сdb.Building
. - person Rahul Singh   schedule 30.06.2017.ToList()
на.Count()
и проверьте. - person Zein Makki   schedule 30.06.2017