. 支持成员选择配置,默认选择所有公共字段成员。
. 支持默认自增标识,数据列名称必须为 Id,否则需要使用 [AutoCSer.Sql.Member(IsIdentity = true)] 申明为自增标识。
. 支持多关键字,关键字数据列必须使用 [AutoCSer.Sql.Member(PrimaryKeyIndex = ?)] 申明,同时必须保证实现 IEquatable<T> 接口用于 Hash 应用。
多关键字表格模型会在表格数据模型中生成一个名称为 DataPrimaryKey 的关键字组合 struct 的嵌套类型,默认实现接口 IEquatable<DataPrimaryKey> 用于 Hash 应用。
. 数据列默认不允许空值 null,可以通过 [AutoCSer.Sql.Member(IsNull = true)] 申明允许空值 null
. 对于最终映射为字符串的数据列,应该设置最大长度避免被用户输入数据攻击。
. 支持枚举类型,自动映射为数据库支持的整数类型。
. 支持基于强制类型转换的自定义数据类型,必须保证直接映射为当前数据库支持的数据类型。
. 对于存在强关联需求的多个数据列,可以使用自定义组合列处理,为了防止循环嵌套问题只支持 struct
. 对于不能识别映射类型的数据列将自动进行 JSON 序列化处理并映射为 string 类型。
. 由于数据库时间类型数据可能存在精度问题(比如 SQL Server 两个不同的时间差有 3ms+),而应用中可能要求每条记录的时间不重复(当然同时也会限制添加数据操作的吞吐,比如 SQL Server 吞吐只能到 200+/s),这时候就不能直接使用 DateTime.Now
. 对于存在成员位图需求的数据列,可以生成成员索引。