aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/TableInfo.cs21
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>