LLBLGen - Выбрать против коллекции сущностей в памяти - PullRequest
0 голосов
/ 17 декабря 2011

Как я могу получить, скажем, все строчные элементы для всех заказов в объекте клиента?

Я пытаюсь

grdView.DataSource = customer.Orders.

, но после заказов я получаю только "GetMulti"... Я не вижу коллекцию lineitems.

Я могу понять, как это сделать для одного заказа

grdView.DataSource = customer.Orders(0).LineItems

но как мне получить все элементы lineitem для всех заказов?

  • Я создал объект клиента
  • Я добавил заказ 1
  • Я добавил товары к заказу 1
  • Я создал заказ 2
  • Я добавил элементы в заказ 2

Мои объекты: Клиент, Заказ, LineItem

Я хочу отобразить все элементы строки в виде сетки перед сохранением.Как я могу сделать это, используя llblgen pro runtime?

1 Ответ

1 голос
/ 13 февраля 2012

Чтобы получить все сущности LineItem, вы должны использовать отношения и фильтры для заполнения LineItemCollection. Вот документация LLBLGen для фильтров нескольких объектов. Чтобы иметь возможность отфильтровать результаты по конкретному желаемому клиенту, вам нужно добавить отношения, чтобы получить требуемые связанные объекты.

(Предполагается, что вы используете самообслуживание. Проверьте документацию для адаптера.)

// Make a link through relations from LineItem to Order to Customer
RelationCollection relations = new RelationCollection();
relations.Add(LineItemEntity.Relations.OrderEntityUsingLineItemId);
relations.Add(OrderEntity.Relations.CustomerEntityUsingOrderId);

// Filter on the customer id
PredicateExpression filter = new PredicateExpression();
filter.Add(CustomerFields.CustomerId == CustomerId);

// Get LineItems based on the relations and filters above
LineItemCollection collection = new LineItemCollection();
collection.GetMulti(filter, 0, null, relations);
...