2016-11-17 46 views
0

我無法按CreationTimeUTC排序。我知道它可以使用RAW CFQL查詢來完成,但是有沒有使用普通CFQL的方法。步驟我想有以下:我可以使用NON-RAW CFQL按照CreationTimeUTC進行排序嗎?

  1. 製造CreationTimeUtc在實體的屬性顯示如下(對不起所示把它在一個代碼片段,計算器有時會與XML古怪,這是得到它的唯一途徑上顯示)

<cf:property name="CreationTimeUtc" set="false" persistent="false" readOnLoad="true" typeName="datetime" dbType="DateTime" dataMember="false" persistenceName="_trackCreationTime" />

  • 創建,如下所示(抱歉使用BLOCKQUOTE的CFQL查詢,計算器是古怪一個增益,它不會在一個碼塊正確地格式化):
  • LOADONE(Amikids.TimeTracking.PunchCard punchCard) WHERE IsVoid = FALSE ORDER BY CreationTimeUtc DESC

  • 一旦構建模型得到以下的錯誤:
  • Error 52 CF0291: An attempt to create a persistence order by column snippet 'CreationTimeUtc' has been detected in procedure 'CompanyCodeAdjustment_LoadActiveByPunchCard'. Make sure order by column identifiers declared in the body are valid in the context. If you really want to create a snippet, you should change the project, method or view 'checkLevel' attribute, currently set to 'Default'.

    以下是該實體的完整XML。

    <cf:entity name="CompanyCodeAdjustment" namespace="Amikids.TimeTracking" categoryPath="/Amikids.TimeTracking" persistenceName="CompanyCodeAdjustment"> 
        <cf:property name="Id" key="true" /> 
        <cf:property name="PunchCard" typeName="{0}.PunchCard" relationPropertyName="CompanyCodeAdjustments" /> 
        <cf:property name="PunchCardAdjustmentStatus" typeName="{0}.PunchCardAdjustmentStatus" /> 
        <cf:property name="NewValue" /> 
        <cf:property name="CreationUser" set="false" persistent="false" readOnLoad="true" dataMember="false" persistenceName="_trackCreationUser" /> 
        <cf:property name="CreationTimeUtc" set="false" persistent="false" readOnLoad="true" typeName="datetime" dbType="DateTime" dataMember="false" persistenceName="_trackCreationTime" /> 
        <cf:property name="Reason" /> 
        <cf:property name="ReviewedBy" /> 
        <cf:property name="IsVoid" typeName="bool" /> 
        <cf:property name="CompanyName" /> 
        <cf:method name="LoadActiveByPunchCard" body="LOADONE(Amikids.TimeTracking.PunchCard punchCard) WHERE IsVoid = FALSE ORDER BY CreationTimeUtc DESC" /> 
        </cf:entity> 
    

    回答

    0

    的CodeFluent查詢語言(CFQL)提供一個特殊的語法來訪問特殊列如創建時間列:$column.creationtime。但是,這在ORDER BY聲明中不可用,因此您必須使用內聯SQL [$Customer{TrackCreationTimeColumn.FullName}$]

    LOAD(datetime now) 
    WHERE $column.creationtime &lt; @now 
    ORDER BY [$Customer{TrackCreationTimeColumn.FullName}$] 
    
    <cf:entity name="Customer" namespace="Model1"> 
        <cf:property name="Id" key="true" /> 
        <cf:method name="LoadOrderedByCreationDate" body="LOAD(datetime now) WHERE $column.creationtime &lt; @now ORDER BY [$Customer{TrackCreationTimeColumn.FullName}$]" checkLevel="None" /> 
    </cf:entity> 
    
    相關問題