当前位置:网站首页>属性关键字Aliases,Calculated,Cardinality,ClientName
属性关键字Aliases,Calculated,Cardinality,ClientName
2022-07-07 11:47:00 【用户7741497】
第九十三章 属性关键字 - Aliases
指定此属性的其他名称,以便通过对象访问使用。
用法
要为属性指定其他名称,请使用以下语法:
Property name As classname [ Aliases=othernames ]; 其中othernames是用逗号分隔的有效属性名列表,用大括号括起来。
详解
如果指定别名关键字,编译器会创建一个或多个给定的别名,这些别名指向原始属性所指向的同一基础数据。例如,重新定义Sample.Person的Name属性,如下所示:
Property Name As %String(POPSPEC = "Name()") [ Aliases = {Alternate}, Required ];然后,代码可以使用Name属性或等效的Alternate属性,如以下终端会话所示:
SAMPLES>set p=##class(Sample.Person).%OpenId(1)
SAMPLES>w p.Name
Fripp,Charles Z.
SAMPLES>w p.Alternate
Fripp,Charles Z.
SAMPLES>set p.Alternate="Anderson,Neville J."
SAMPLES>w p.Name
Anderson,Neville J.还为每个别名属性定义了与原始属性关联的任何属性方法,因此在本例中,AlternateIsValid()是可调用的,并返回与NameIsValid()方法相同的结果。此外,如果覆盖属性方法(例如,编写自定义NameGet()方法),则该覆盖将自动应用于一个或多个别名属性。
注意:此关键字对属性的SQL投影没有影响。
默认
默认情况下,此关键字为NULL,并且属性没有别名。
示例
Property PropA As %String [ Aliases={OtherName,OtherName2} ]; 第九十四章 属性关键字 - Calculated
指定在实例化包含此属性的对象时,没有为其分配内存中存储。
用法
若要指定没有为该属性分配内存中存储,请使用以下语法:
Property name As classname [ Calculated ];否则,请省略此关键字或将该词放在该关键字之前。
详解
此关键字指定在实例化包含该属性的对象时,没有为该属性分配内存中存储。
在定义不需要任何内存存储的属性时,请使用此关键字。有两种方法可以指定此属性的值:
- 定义属性的
get(可能还有set)方法。例如,对于Age属性,可以提供AgeGet方法,该方法根据当前时间和DateOfBirth属性的值确定一个人的当前年龄。 - 将此属性定义为计算属性;它使用
SqlComputed关键字和相关关键字。
子类继承计算的关键字,不能重写它。
默认
Calculated关键字的默认值为False。
Property Age as %Integer [ Calculated ];第九十五章 属性关键字 - Cardinality
指定此关系属性的基数cardinality。关系属性Required。不用于其他属性。
用法
要指定关系属性的基数,请使用以下语法:
Relationship relname As classname [ Cardinality = cardinality; inverse = inverse ];其中cardinality 是下列之一:
onemanyparentchildren
详解
此关键字指定关系属性cardinality。
关系属性需要cardinality关键字。它被非关系属性忽略。
默认
没有默认值。定义关系时,必须指定Cardinality关键字。
示例
Relationship Chapters As Chapter [ Cardinality = many; inverse = Book ];第九十六章 属性关键字 - ClientName
指定此属性的客户端投影使用的别名。
用法
若要在将类投影到客户端语言时重写此属性的默认名称,请使用以下语法:
Property name As classname [ ClientName = clientname ];其中clientname是在客户端语言中使用的名称。
详解
当属性被投影到客户端语言时,此关键字允许定义属性的替代名称。如果属性名包含客户端语言中不允许的字符,这尤其有用。
默认
如果省略此关键字,属性名称将用作客户端名称。
边栏推荐
- . Net core about redis pipeline and transactions
- 我那“不好惹”的00后下属:不差钱,怼领导,抵制加班
- Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
- LeetCode简单题分享(20)
- MySQL error 28 and solution
- 【堡垒机】云堡垒机和普通堡垒机的区别是什么?
- 2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
- Redis只能做缓存?太out了!
- OSI seven layer model
- Split screen bug notes
猜你喜欢

Custom thread pool rejection policy

Redis只能做缓存?太out了!

"New red flag Cup" desktop application creativity competition 2022

Cinnamon taskbar speed

MySQL error 28 and solution
![供应链供需预估-[时间序列]](/img/2c/82d118cfbcef4498998298dd3844b1.png)
供应链供需预估-[时间序列]

TPG x AIDU | AI leading talent recruitment plan in progress!

Getting started with cinnamon applet

Realize the IP address home display function and number home query

Storage principle inside mongodb
随机推荐
Use of polarscatter function in MATLAB
《厌女:日本的女性嫌恶》摘录
How far can it go to adopt a cow by selling the concept to the market?
Help tenants
Esp32 series column
Thread pool reject policy best practices
postgresql array类型,每一项拼接
实现IP地址归属地显示功能、号码归属地查询
ROS机器人更换新雷达需要重新配置哪些参数
Read PG in data warehouse in one article_ stat
LED light of single chip microcomputer learning notes
Fast development board pinctrl and GPIO subsystem experiment for itop-imx6ull - modify the device tree file
Esp32 ① compilation environment
How to make join run faster?
move base参数解析及经验总结
JS slow motion animation principle teaching (super detail)
Introduce six open source protocols in detail (instructions for programmers)
【日常训练】648. 单词替换
Redis只能做缓存?太out了!
Learning breakout 2 - about effective learning methods