diff options
author | crupest <crupest@outlook.com> | 2022-12-13 11:14:30 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | e42b048abf6c97515686c42175c29191b1527dfd (patch) | |
tree | 9d2c97e517a36644ac5069469249475a17310433 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs | |
parent | bc2a3db855cca16d4f66b23f814528671b5d8591 (diff) | |
download | crupest-e42b048abf6c97515686c42175c29191b1527dfd.tar.gz crupest-e42b048abf6c97515686c42175c29191b1527dfd.tar.bz2 crupest-e42b048abf6c97515686c42175c29191b1527dfd.zip |
Develop secret api. v33
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs index c02f776..1082ea4 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs @@ -20,11 +20,18 @@ public static class ColumnMetadataKeys /// <summary> /// The default value generator method name in entity type. Default to null, aka, search for ColumnNameDefaultValueGenerator. + /// Generator has signature <code>static void DefaultValueGenerator(ColumnInfo column)</code> /// </summary> - /// <returns></returns> public const string DefaultValueGenerator = nameof(ColumnAttribute.DefaultValueGenerator); /// <summary> + /// The validator method name in entity type. Default to null, aka, the default validator. + /// Validator has signature <code>static void Validator(ColumnInfo column, object value)</code> + /// Value param is never null. If you want to mean NULL, it should be a <see cref="DbNullValue"/>. + /// </summary> + public const string Validator = nameof(ColumnAttribute.Validator); + + /// <summary> /// The column can only be set when inserted, can't be changed in update. /// </summary> /// <returns></returns> @@ -34,24 +41,6 @@ public static class ColumnMetadataKeys /// This column acts as key when get one entity for http get method in path. /// </summary> public const string ActAsKey = nameof(ColumnAttribute.ActAsKey); - - /// <summary> - /// Define what to do when update. - /// </summary> - public const string UpdateBehavior = nameof(ColumnAttribute.UpdateBehavior); -} - -[Flags] -public enum UpdateBehavior -{ - /// <summary> - /// Null value means do not update that column. - /// </summary> - NullIsNotUpdate = 0, - /// <summary> - /// Null value means set to null. - /// </summary> - NullIsSetNull = 1 } public interface IColumnMetadata @@ -125,15 +114,15 @@ public class ColumnAttribute : Attribute, IColumnMetadata /// <seealso cref="ColumnMetadataKeys.DefaultValueGenerator"/> public string? DefaultValueGenerator { get; init; } + /// <seealso cref="ColumnMetadataKeys.Validator"/> + public string? Validator { get; init; } + /// <seealso cref="ColumnMetadataKeys.NoUpdate"/> public bool NoUpdate { get; init; } /// <seealso cref="ColumnMetadataKeys.ActAsKey"/> public bool ActAsKey { get; init; } - /// <seealso cref="ColumnMetadataKeys.UpdateBehavior"> - public UpdateBehavior UpdateBehavior { get; init; } = UpdateBehavior.NullIsNotUpdate; - public bool TryGetValue(string key, out object? value) { var property = GetType().GetProperty(key); |