自定义数据结构
右键点击项目节点,选择 自定义数据结构。自定义数据结构 窗口用于创建和管理枚举、模型等数据结构。数据结构用于定义应用程序中的数据类型、数据组织形式和数据之间的关系。
枚举
枚举是一种数据类型,它表示有限的几个可能值。通常用于定义具有特定限制的一组常量或选项。这些常量代表某种类型的状态、类别、标识符等。
在 自定义数据结构 窗口,用户可以创建枚举类型,并为其定义一组值。例如,创建一个用于表示订单状态的枚举:
在窗口左边点击 添加 图标,然后从下拉列表中选择 枚举,在中间窗口中设置枚举名称为OrderStatus,并添加三个字段:Pending、Shipped、Completed表示订单状态。
右边 常规 选项卡提供了一些配置项,帮助用户定义和管理枚举的基本信息。
如果在中间窗口中选择枚举,则可以在 常规 选项卡中配置以下信息:
-
名称:枚举的实际名称,通常在代码中使用。
-
显示名称:枚举的显示名称,通常在界面中使用。
-
描述:对枚举的详细描述或备注。
-
位标志枚举:位标志枚举允许将多个枚举值组合在一起表示不同的选项或状态。通常用于表示可以同时选中的多个选项,比如权限、状态等。例如,你有一个表示用户权限的枚举,可能会有“读取”、“写入”和“删除”权限,你希望一个用户可以同时拥有这些权限,这时就可以使用位标志枚举来实现。
为了让位标志枚举正常工作,枚举值通常会赋予不同的位,如1、2、4、8等。这种组合使得可以通过位运算(如AND、OR)来设置、修改或检查特性的枚举值。
如果在中间窗口中选择某个枚举字段,则可以在 常规 选项卡中配置以下信息:
- 名称:枚举字段的实际名称,通常在代码中使用。
- 显示名称:枚举字段的显示名称,通常在界面中使用。
- 值:枚举字段的值。通常用于表示某种状态或选项,例如权限、状态码、操作类型等。默认情况下,枚举字段的值从0开始递增。你也可以手动指定值。这些值可以是整数、位标志等。
- 描述:对枚举字段的详细描述。
枚举的使用可以简化数据存储和验证。例如,在实体(表)中创建字段时可以将枚举作为字段类型使用。
当枚举被字段使用后,常规 选项卡的下方 被引用 选项卡中将显示枚举在项目中被引用的位置和次数。
- 引用地址:引用了该枚举的文件或文件列表。
- 引用次数:枚举在文件中被引用的次数。
模型
模型是一种描述和组织数据的结构。它用于定义一组相关的数据项或属性(例如用户的姓名、年龄等)。模型通常对应着数据库表,通过模型,我们可以像操作普通对象一样操作数据库中的记录、表单数据或其他复杂数据结构。
SnapDevelop 提供了部分内置模型,例如用户登录、注册、操作结果反馈、分页查询等,以提高开发效率。内置模型自动化生成与数据库表对应的数据结构,并提供与数据库交互的基本功能。另外,对于在实体文件中添加的每一个实体表都会自动创建一个同名的模型,开发人员通过操作此模型来操作实体表的数据。
用户也可以根据业务需求创建模型,定义数据结构和规则。
在 自定义数据结构 窗口左边点击 添加 图标,然后从下拉列表中选择 模型,在中间窗口中设置模型名称,并添加字段。
或者从JSON数据快速导入模型,具体步骤为:点击添加图标后面的 从JSON导入模型 图标,然后选择JSON文件或输入JSON字符串,设置模型名称,选择字段名称命名策略(保持原始名称、大驼峰、小驼峰),选择是否保留属性原始数据作为字段默认值,点击 下一步,根据需要调整将要导入的模型和字段的名称和数据类型,点击 确定。
右边 常规 选项卡提供了一些选项用于帮助用户定义和管理模型的基本信息、数据结构及校验规则。
如果在中间窗口中选择的是模型,则可以在 常规 选项卡中为模型配置以下信息:
- 名称:模型的实际名称,通常在代码中使用。
- 显示名称:模型的显示名称,通常在界面中使用。
- 描述:对模型的详细描述或备注。
如果在中间窗口中选择的是模型的某个字段,则可以在 常规 选项卡中为字段配置以下信息:
- 名称:字段的实际名称,通常在代码中使用。
- 显示名称:字段的显示名称,通常在界面中使用。
- 数据类型:列的数据类型。 例如,Int32 数据类型将在 C# 代码中定义为 int 类型。支持的数据类型包括:
- 整数类型:Int16、Int32、Int64、UInt16、UInt32、UInt64
- 字符类型:String、Char
- 日期时间类型:DateTime、DateTimeOffset、DateOnly、TimeOnly、TimeSpan
- 浮动类型:Decimal、Single、Double
- 其他:Any、Boolean、Guid、Byte、枚举、模型
- 默认值:字段的默认值。在插入新记录时,如果该字段没有显式指定值时,将自动使用默认值。
- 可空:当选择 可空 选项时,该字段将允许为空值。 对于关键字段如主键或约束字段,通常会设置为不可空,以确保数据的完整性。
- 集合:详见以下小节。
- 计算列:该字段是否为计算列。计算列的值由其他列的值通过表达式或公式自动计算得出。
- 表达式:指定定义计算列的值的表达式、公式或函数,例如,可以将两列的和、差、乘积或其他计算逻辑作为计算列的定义。
- 描述:对字段的详细描述或备注。
- 校验:详见以下小节。
模型的使用可以简化数据操作,例如,在实体(表)中创建字段时可以将模型作为字段类型直接使用,实现将数据表中的某个字段映射为一个对象,使得开发者可以直接操作更复杂的数据结构。例如:假设有一个orders表,其中一个字段为user,user是usermodel类型的字段,也就是user字段直接映射到usermodel模型,这样user字段就会是一个完整的用户对象(包含用户ID、电子邮件等多个属性),而不是简单的用户ID,这样开发人员就可以方便地访问或存储整个用户对象的信息,而不需要拆分成多个字段。
当模型被使用后,常规 选项卡的下方 被引用 选项卡中将显示模型在项目中被引用的位置和次数。
- 引用地址:引用了该模型的文件或文件列表。
- 引用次数:模型在文件中被引用的次数。
集合
将某个字段设置为 集合 类型,表示该字段支持存储多个值,而不是单一的值,也就是说,该字段可以存储一个数据集合如列表、数组、集合或其他形式的多个元素,而不只是一个单一的项。
集合类型的字段通常用于存储多重数据的场景。例如,在多对多关系中可以使用集合类型的字段来存储与其他表的多个关联(比如一个学生可能有多个课程,一个课程可能被多个学生选修)。假如你希望在单个字段中存储多个相关数据项(如多个电话号码、多个电子邮件地址等),也可以使用集合来表示这些数据。
校验
您可以为字段添加一种或多种校验规则以确保数据的准确性、一致性和完整性,通过对字段进行校验,可以防止无效或不符合要求的数据进入系统。
-
必要校验:必要校验确保字段不能为空,数据必须提供。适用于所有必填字段。
-
正则校验:正则校验用于根据特定的模式对字段值进行验证,确保字段值符合特性的格式要求,比如电子邮件地址、电话号码、日期等字段需要正则校验。
通过正则表达式,可以定义复杂的规则来匹配字段数据。点击展开 正则校验 输入框,您可以手动输入用于验证数据的表达式,也可以从 常用正则表达式 列表中选择系统预定义的表达式(例如,日期时间、域名、电子邮件、IP 地址、电话、URL 等)。 选择预定义表达式后,您还可以根据需要修改预定义表达式。 在 校验错误信息 输入框中,指定正则校验失败时显示的消息。
-
长度校验:长度校验确保字段值的长度在指定范围内,不超过最大长度或小于最小长度。例如:用户名、密码等字符类型字段通常需要长度校验。