我无法按CreationTimeUTC排序。我知道可以使用RAW CFQL查询来完成,但有没有办法使用普通的CFQL。我试过的步骤如下:
<cf:property name="CreationTimeUtc" set="false" persistent="false" readOnLoad="true" typeName="datetime" dbType="DateTime" dataMember="false" persistenceName="_trackCreationTime" />
LOADONE(Amikids.TimeTracking.PunchCard punchCard)WHERE IsVoid = FALSE 订单BY CreationTimeUtc DESC
错误52 CF0291:尝试按列创建持久性顺序 已在程序中检测到代码段“CreationTimeUtc” 'CompanyCodeAdjustment_LoadActiveByPunchCard'。确保订购 正文中声明的列标识符在上下文中有效。如果 你真的想要创建一个片段,你应该改变项目, 方法或视图'checkLevel'属性,当前设置为'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 :(得分:0)
CodeFluent查询语言(CFQL)提供了一种特殊语法来访问特殊列,例如创建时间列:$column.creationtime
。但是,这在ORDER BY
语句中不可用,因此您必须使用内联SQL [$Customer{TrackCreationTimeColumn.FullName}$]
:
LOAD(datetime now)
WHERE $column.creationtime < @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 < @now ORDER BY [$Customer{TrackCreationTimeColumn.FullName}$]" checkLevel="None" />
</cf:entity>