Есть таблицы А,Б,В. А один ко многим к Б и опять же А один ко многим к В.
Задача — быстро загрузить данные из А,Б,В, отключиться на автономную работу и больше не лезть в базу данных. Причем надо все записи из А, те из Б, где Б.поле1=1, и те из В, где В.поле2=А.
Как получить быстро получить 3 отфильтрованных List<> я, вроде, понимаю. А вот так как сделать ?
В итоге хочется что-б в объекте А, в А.List<Б> — были не все объекты, представляющие данные из таблицы Б, а только те, у кого Б.поле1=1. Ну и с таблицей В аналогично.
N_P>В итоге хочется что-б в объекте А, в А.List<Б> — были не все объекты, представляющие данные из таблицы Б, а только те, у кого Б.поле1=1. Ну и с таблицей В аналогично.
Используй ObjectContext как хранилище данных (Repository),
При загрузке данных используй Include. Кажется он подымает не все записи справочника, а только нужные
N_P>>В итоге хочется что-б в объекте А, в А.List<Б> — были не все объекты, представляющие данные из таблицы Б, а только те, у кого Б.поле1=1. Ну и с таблицей В аналогично.
А>Используй ObjectContext как хранилище данных (Repository), А>При загрузке данных используй Include. Кажется он подымает не все записи справочника, а только нужные
Я смотрел такой способ, но как я понял — это требует foreach на каждый объект А при загрузке которого и указывается Include на Б и В. Foreach на все А не самый быстрый способ.
Вроде как быстро будет 3 списка Entity.A(Б)(В).ToList(), я даже фильтр на Б и В наложу. Но как я понимаю — в обектах А будут ссыдки на не прошедшие фильтрацию объекты Б и В.
N_P>В итоге хочется что-б в объекте А, в А.List<Б> — были не все объекты, представляющие данные из таблицы Б, а только те, у кого Б.поле1=1. Ну и с таблицей В аналогично.
Вам нужно составить LINQ запрос с использованием join
Примеры можно посмотреть здесь.
Здравствуйте, HowardLovekraft, Вы писали:
HL>Если я вас правильно понял, вам требуется отфильтровать связанную коллекцию по какому-либо критерию. HL>См. здесь: How to do a Conditional Include.
Да, спасибо огромное. Тем более, что там обсуждается и случай много-к-многим, а у меня такое тоже есть.
Появилось 2 вопроса:
1) Уже не раз натыкаюсь поиском на этот блог — есть ли где эти "tips" в одном месте собранные ?
Что, с учетом автоматического fix-up у меня будет в A.List<B> коллекции ? Меня, в принципе, устроит, если объект в коллекции будет, но не будет загружен из базы данных так как не прошел фильтрацию и я об этом смогу легко узнать.