diff options
author | crupest <crupest@outlook.com> | 2022-12-19 12:39:37 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | 2d38b90f9b7f3297ada25b78a722b4e18fa8dc60 (patch) | |
tree | 58a41aafa68cee56f8d3eb8bb3dfdea46d28a703 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs | |
parent | e9b958cc41a3b941d878fd455e297a50e050be1a (diff) | |
download | crupest-2d38b90f9b7f3297ada25b78a722b4e18fa8dc60.tar.gz crupest-2d38b90f9b7f3297ada25b78a722b4e18fa8dc60.tar.bz2 crupest-2d38b90f9b7f3297ada25b78a722b4e18fa8dc60.zip |
Develop secret api. v44
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs index 3147e99..a20963c 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs @@ -1,4 +1,5 @@ using System.Data; +using System.Diagnostics; using System.Reflection; using System.Text; using Dapper; @@ -438,6 +439,18 @@ CREATE TABLE {tableName}( return queryResult.Select(MapDynamicTo<TResult>).ToList(); } + public IInsertClause ConvertEntityToInsertClause(object entity) + { + Debug.Assert(EntityType.IsInstanceOfType(entity)); + var result = new InsertClause(); + foreach (var column in PropertyColumns) + { + var value = column.PropertyInfo!.GetValue(entity); + result.Add(column.ColumnName, value); + } + return result; + } + /// <summary> /// Insert a entity and call hooks. /// </summary> @@ -504,6 +517,14 @@ CREATE TABLE {tableName}( return key ?? throw new Exception("No key???"); } + public object Insert(IDbConnection dbConnection, object entity) + { + Debug.Assert(EntityType.IsInstanceOfType(entity)); + var insert = ConvertEntityToInsertClause(entity); + return Insert(dbConnection, insert); + } + + /// <summary> /// Upgrade a entity and call hooks. /// </summary> |