背景
我正在将旧的4D数据库代码转换为使用v17中引入的新orda概念。但是,我注意到了一个奇怪的地方。当我有一个使用ds[$vtTableName].query()
创建的entitySelection并将该EntitySelection转换为一个集合(使用.toCollection()
时,将不遵守我指定的字段顺序。>
示例代码:
C_OBJECT($voSelection)
$voSelection:=ds.Users.query("active = 'True'")
C_COLLECTION($vcUsers)
$vcUsers:=$voSelection.toCollection("FirstName,LastName,DTLastSignin")
预期产量
我希望$vcUsers
是对象的集合,并且每个对象看起来像:
{ "FirstName" : "John","LastName" : "Smith","DTLastSignin" : "2019-10-12T32:23:00" }
实际输出
相反,我得到了不同的订单:
{ "DTLastSignin" : "2019-10-12T32:23:00","FirstName" : "John","LastName" : "Smith" }
这破坏了我的一些API使用者,因为他们希望能够指定旧顺序(Selection to JSON)尊重的字段顺序。但是,toCollection()
似乎没有。
我找不到有关现场订单的任何文档,甚至可以找到。 official documentation显示了遵守顺序的字段,但这也许只是一个巧合。