Допустим, у меня есть метод (пример взят из другого поста):
public IQueryable<CityBlock> GetCityBlocks(){
var results = from o in db.city_blocks
let buildings = GetBuildingsOnBlock(o.block_id) //returns Iqueryable
select new CityBlock {
BuildingsOnBlock = buildings,
BlockOwner = o.block_owner
};
return results;
}
В вызывающем методе я добавляю методы Skip () и Take () плюс некоторую фильтрацию, а затем делаю ToList ().
Проблема в том, что я получаю десятки вызовов базы данных - один для всех городских кварталов, а затем отдельный для каждого здания.
Есть ли способ, которым я могу реорганизовать этот код, чтобы просто сделать два вызова: один для городских кварталов и один для всех зданий
Следует добавить, что я пробовал загружать с помощью:
var dataLoadOptions = new DataLoadOptions();
dataLoadOptions.LoadWith<city_blocks>(x => x.buildings);
db.LoadOptions = dataLoadOptions;
но, похоже, не имеет значения.