文章
姚 鑫 · 八月 26, 2021 阅读大约需 2 分钟

Storage关键字IdFunction,IdLocation,IndexLocation,SqlRowIdName

第149章 Storage关键字 - IdFunction

指定使用默认存储为持久类分配新ID值的系统函数。

大纲

<IdFunction>increment</IdFunction>

这个元素的值可以是increment(使用$increment函数)或sequence(使用$sequence函数)。

描述

如果持久化类不使用IdKey来确定对象ID值,则该元素允许指定用于分配ID值的函数($increment函数或$sequence函数)。

如果类使用$increment函数,则通过对<IdLocation>元素中定义的全局位置中存储的值进行递增来创建新的id。

如果类使用$sequence函数,它可能会保留id块,以便在快速数据摄入的情况下获得更快的速度。
如果没有使用所有保留的ID,则可能导致ID号之间的空白。
当随后的数据被吸收时,这些空白可能会也可能不会被填补。
一个副作用是,具有较高ID的类的实例不一定比具有较低ID的类的实例更新。
此外,在<IdLocation>元素中定义的全局位置上的值与当前分配的任何id都不直接相关。

默认值

<IdFunction>元素的默认值是使用类定义创建的类的递增值。

<IdFunction>元素的默认值是使用DDL CREATE TABLE语句创建的类的序列。

第150章 Storage关键字 - IdLocation

指定ID计数器的位置。

大纲

<IdLocation>^Sample.PersonD</IdLocation>

这个元素的值是一个全局名称,前导下标是可选的。

描述

此元素允许指定包含用于分配对象ID值的计数器的全局节点。

默认情况下,在使用默认存储的持久类定义中,这个全局位置包含类实例的最高分配ID
然而,这仅在<IdFunction>元素被设置为自增且类不使用IdKey时才适用。
如果<IdFunction>元素被设置为sequence,那么存储在这个全局位置上的值是没有意义的,并且如果类使用IdKey,该位置不会被赋值。

默认值

如果未指定,则类编译器将生成<IdLocation>元素的值。通常,该值是^MyApp.MyClassD(其中MyApp.MyClass是类名),但是,它可能会根据许多因素而有所不同。

第151章 Storage关键字 - IndexLocation

指定索引的默认存储位置。

大纲

<IndexLocation>^Sample.PersonI</IndexLocation>

此元素的值是带有可选前导下标的全局名称。

描述

此元素允许指定用于此类索引的全局。如果未指定,则索引位置为^MyApp.MyClassI(其中MyApp.MyClass是类别名称)。

请注意,还可以单独指定每个索引的存储。

默认值

<IndexLocation>元素的默认值为空字符串。

第152章 Storage关键字 - SqlRowIdName

指定用于SQL中的行ID的名称。

大纲

<SqlRowIdName>IdName</SqlRowIdName>

该元素的值是一个SQL标识符。

描述

该元素允许直接指定投影到SQL的行(对象)ID列的名称。

默认值

<SqlRowIdName>元素的默认值为空字符串。

00
1 0 0 21
登录或注册以继续