LLBLGen - 针对内存中的实体集合进行选择

时间:2011-12-16 21:39:49

标签: llblgenpro

如何检索客户对象中所有订单的所有lineitems?

我正在尝试

grdView.DataSource = customer.Orders.

但是在订单之后,我得到的只是“GetMulti”......我没有看到lineitems集合。

我可以理解为一个订单执行此操作

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

但我如何获得所有订单的所有线条项目?

  • 我创建了客户对象
  • 我添加了订单1
  • 我在订单1
  • 中添加了商品
  • 我创建了订单2
  • 我在订单2中添加了商品

我的实体是Customer,Order,LineItem

我希望在保存之前显示gridview中的所有lineitems。如何使用llblgen pro运行时执行此操作?

1 个答案:

答案 0 :(得分:1)

为了获取所有LineItem实体,您应该使用关系和过滤器来填充LineItemCollection。 Here is the LLBLGen Documentation for multi-entity filters.为了能够过滤您想要的特定客户的结果,您需要添加关系以获取所需的相关实体。

(这假设您使用的是SelfServicing。请查看适配器的文档。)

// 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);