diff options
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs index bf62df2..9610e40 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs @@ -190,6 +190,31 @@ CREATE TABLE {tableName}( return result.ToString(); } + public string GenerateInsertSql(InsertClause insertClause, out DynamicParameters parameters) + { + var relatedColumns = insertClause.GetRelatedColumns(); + foreach (var column in relatedColumns) + { + if (!ColumnNameList.Contains(column)) + { + throw new ArgumentException($"Column {column} is not in the table."); + } + } + + parameters = new DynamicParameters(); + + var result = new StringBuilder() + .Append("INSERT INTO ") + .Append(TableName) + .Append(" (") + .Append(insertClause.GenerateColumnListSql()) + .Append(") VALUES (") + .Append(insertClause.GenerateValueListSql(parameters)) + .Append(");"); + + return result.ToString(); + } + public string GenerateUpdateSql(WhereClause? whereClause, UpdateClause updateClause, out DynamicParameters parameters) { var relatedColumns = new HashSet<string>(); @@ -200,7 +225,7 @@ CREATE TABLE {tableName}( { if (!ColumnNameList.Contains(column)) { - throw new ArgumentException($"Field {column} is not in the table."); + throw new ArgumentException($"Column {column} is not in the table."); } } |