aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-13 11:14:30 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:53 +0800
commite42b048abf6c97515686c42175c29191b1527dfd (patch)
tree9d2c97e517a36644ac5069469249475a17310433 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnMetadata.cs
parentbc2a3db855cca16d4f66b23f814528671b5d8591 (diff)
downloadcrupest-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.cs33
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);