From 4fe8d1c88cafd86950e41ae81b94c0d1790e7dfa Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 13 Dec 2022 17:17:06 +0800 Subject: Develop secret api. v37 --- .../CrupestApi.Commons/Crud/TableInfo.cs | 27 +++++----------------- 1 file changed, 6 insertions(+), 21 deletions(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs index 869e987..b552e6b 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs @@ -285,25 +285,6 @@ CREATE TABLE {tableName}( return (result.ToString(), parameters); } - public void CheckInsertClause(IInsertClause insertClause) - { - var columnNameSet = new HashSet(Columns.Select(c => c.ColumnName)); - - foreach (var item in insertClause.Items) - { - columnNameSet.Remove(item.ColumnName); - } - - foreach (var columnName in columnNameSet) - { - var column = GetColumn(columnName); - if (!column.IsAutoIncrement) - { - throw new Exception($"Column {columnName} is not specified and is not auto increment."); - } - } - } - /// /// If you call this manually, it's your duty to call hooks. /// @@ -311,7 +292,6 @@ CREATE TABLE {tableName}( public (string sql, ParamList parameters) GenerateInsertSql(IInsertClause insertClause, string? dbProviderId = null) { CheckRelatedColumns(insertClause); - CheckInsertClause(insertClause); var parameters = new ParamList(); @@ -484,6 +464,11 @@ CREATE TABLE {tableName}( value = column.InvokeDefaultValueGenerator(); } + if (value is null && column.IsAutoIncrement) + { + continue; + } + if (value is null) { value = DbNullValue.Instance; @@ -493,7 +478,7 @@ CREATE TABLE {tableName}( if (value is DbNullValue) { - if (column.IsNotNull && !column.IsAutoIncrement) + if (column.IsNotNull) { throw new Exception($"Column '{column.ColumnName}' is not nullable. Please specify a non-null value."); } -- cgit v1.2.3