首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeFluent相关集合排序

CodeFluent相关集合排序
EN

Stack Overflow用户
提问于 2016-04-25 23:03:23
回答 1查看 61关注 0票数 1

我有两个CodeFluentEntities集合,它们在典型的主/详细关系中是相关的:发票和发票细节。

虽然我可以按发票编号顺序加载发票收集,但我不太清楚如何根据发票的行号按顺序加载发票详细信息的相关集合。

这可以按照所需的顺序检索发票:

代码语言:javascript
复制
Dim _page As New CodeFluent.Runtime.PageOptions("[Invoice].[InvoiceNumber]", System.ComponentModel.ListSortDirection.Ascending)
Dim _orders as Accounting.AR.OrderCollection.PageLoadAll(0, -1, _page)
OrderCollectionBindingSource.DataSource = _orders

InvoiceDetail集合按随机顺序加载。我想要做的是让相关的集合按[InvoiceDetail].[LineNumber]排序

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 08:22:44

CodeFluent实体提供了几个处理集合排序的选项:

  • 静态排序:集合使用CFQL方法在SQL中排序。如果需要,还可以重写LoadBy.()方法。但是,最好创建一个名为LoadBy...OrderedBySomething()的CFQL方法。
  • 动态排序:根据排序参数在SQL中对集合进行排序。
  • 客户端排序:使用可以根据您的需要进行过度排序的方法。

所有这些选项都记录在这里:Sorting.html

在这种情况下,您希望更改Orders属性用于加载相关订单集合的方法。因此,您需要用静态排序创建一个新的CFQL方法(或替换现有的方法)。然后可以将此方法设置为使用loadMethodName属性的方法:

代码语言:javascript
复制
<cf:entity name="Customer">
  <cf:property name="Id" key="true" />
  <cf:property name="FullName" />

  <!-- loadMethodName -->
  <cf:property name="Orders" loadMethodName="LoadByCustomerOrderedByCreationDate" typeName="{0}.OrderCollection" relationPropertyName="Customer" />
</cf:entity>

<cf:entity name="Order">
  <cf:property name="Id" key="true" />
  <cf:property name="CreationDate" sortable="true" typeName="date" />
  <cf:property name="Customer" typeName="{0}.Customer" relationPropertyName="Orders" />

  <!-- Static sorting: `ORDER BY ...` -->
  <cf:method name="LoadByCustomerOrderedByCreationDate" body="LOAD(Customer) WHERE Customer = @Customer ORDER BY CreationDate" />
</cf:entity>

Orders属性是:

代码语言:javascript
复制
public OrderCollection Orders
{
    get
    {
        if (this._orders == null)
        {
            // code omitted for brevity
            this._orders = OrderCollection.LoadByCustomerOrderedByCreationDate(this);
        }
        return this._orders;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36852595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档