From 2c7e3b1c00dc13ab3647d960a79d1d7b5ba6c362 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 11 Dec 2022 10:43:56 +0800 Subject: Develop secret api. v26 --- .../CrupestApi.Commons/Crud/ColumnMetadata.cs | 31 +++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs index 9fb3999..e7c74f3 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs @@ -34,6 +34,24 @@ public static class ColumnMetadataKeys /// This column acts as key when get one entity for http get method in path. /// public const string ActAsKey = nameof(ColumnAttribute.ActAsKey); + + /// + /// Define what to do when update. + /// + public const string UpdateBehavior = nameof(ColumnAttribute.UpdateBehavior); +} + +[Flags] +public enum UpdateBehavior +{ + /// + /// Null value means do not update that column. + /// + NullIsNotUpdate = 0, + /// + /// Null value means set to null. + /// + NullIsSetNull = 1 } public interface IColumnMetadata @@ -98,22 +116,23 @@ public class ColumnAttribute : Attribute, IColumnMetadata // default None public ColumnIndexType Index { get; init; } = ColumnIndexType.None; - /// + /// public bool DefaultEmptyForString { get; init; } - /// + /// public bool ClientGenerate { get; init; } - /// + /// public string? DefaultValueGenerator { get; init; } - /// + /// public bool NoUpdate { get; init; } - /// + /// public bool ActAsKey { get; init; } - + /// + public UpdateBehavior UpdateBehavior { get; init; } = UpdateBehavior.NullIsNotUpdate; public bool TryGetValue(string key, out object? value) { -- cgit v1.2.3