Как заполнить мастер объектов - коллекции данных С#/SQL2005

Я использую коллекции бизнес-объектов.
(Не использую наборы данных. Только общие коллекции.)
Коллекции бизнес-объектов заполняются с помощью SQL Reader.

Я хотел бы знать ваше мнение, как лучше всего заполнить коллекции основных данных (или родитель-потомок).

Предположим, у меня есть 2 объекта: Invoice и Invoice_Details
Объект Invoice имеет общую коллекцию «Подробности» (тип сведений о счете).

Как лучше всего работать/заполнять обе коллекции?
(Например, я хотел бы прочитать все счета за 2008 год и представить их в графическом интерфейсе)

  • Читаете ли вы все счета-фактуры за выбранный диапазон дат, а не все дочерние, и заполняете ли соответствующие данные счета-фактуры?
  • Или читать счета по одному и связанные с ними детали? (например, с использованием множественных наборов результатов)
  • Я также заметил подход, основанный на Binding Source -> чтение дочерних элементов только при изменении текущей позиции записи...

Мне очень интересно ваше мнение, что было бы лучшим/быстрым сценарием?


person Maciej    schedule 06.07.2009    source источник
comment
Графический интерфейс моего приложения был спроецирован таким образом, что родительская сетка данных находится в верхней части формы, а дочерняя - в нижней части той же формы. Таким образом, там нет кнопки «предварительный просмотр», и простое событие запускает то, что можно использовать для загрузки дочерних записей. Итак, как закодировать его, чтобы он читался, когда это необходимо?   -  person Maciej    schedule 06.07.2009


Ответы (2)


Это зависит от того, что вы пытаетесь сделать.

Если вам нужны все детали счета-фактуры всякий раз, когда вам нужен счет-фактура, затем отправьте запрос на детали при первом доступе к счету-фактуре (если вы не знаете, что вам всегда понадобятся оба, и в этом случае выдайте один пакет с двумя наборами результатов) .

Аналогичные схемы применимы и к другим случаям.

person John Saunders    schedule 06.07.2009

Чтобы свести к минимуму влияние, я загружал записи Invoice за один раз, а затем лениво загружал Invoice_Details только тогда, когда они были необходимы. Преимущество этого заключается в том, что это самый быстрый способ загрузки всех данных счета-фактуры при минимальном использовании памяти.

person Pete OHanlon    schedule 06.07.2009