From 73c1fd2d6aea361c1d8d1920020822a18d463665 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sun, 21 Jan 2024 23:09:55 +0800 Subject: [PATCH] 111 --- FreeSql/FreeSql.xml | 98 +++++++++++++++++++ .../SelectProvider/Select1Provider.cs | 15 ++- 2 files changed, 112 insertions(+), 1 deletion(-) diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 8adf6d85..8f213e5c 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -1104,6 +1104,82 @@ + + + 动态创建实体类型 + + + + + 配置Class + + 类名 + 类标记的特性[Table(Name = "xxx")] [Index(xxxx)] + + + + + 配置属性 + + 属性名称 + 属性类型 + 属性标记的特性-支持多个 + + + + + 配置属性 + + 属性名称 + 属性类型 + 该属性是否重写父类属性 + 属性标记的特性-支持多个 + + + + + 配置属性 + + 属性名称 + 属性类型 + 该属性是否重写父类属性 + 属性默认值 + 属性标记的特性-支持多个 + + + + + 配置父类 + + 父类类型 + + + + + Override属性 + + + + + + Emit动态创建出Class - Type + + + + + + 首字母小写 + + + + + + + 首字母大写 + + + + 获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 null @@ -5821,6 +5897,28 @@ 请使用 fsql.InsertDict(dict) 方法插入字典数据 + + + 动态构建Class Type + + + + + + 根据字典,创建 table 对应的实体对象 + + + + + + + + 根据实体对象,创建 table 对应的字典 + + + + + C#: that >= between && that <= and diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index 753de903..38589493 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -867,7 +867,20 @@ namespace FreeSql.Internal.CommonProvider #endif var list = listObj as List; - if (list == null) return; + if (list == null) + { + if (typeof(T1) == typeof(object)) + { + var ilist = listObj as IList; + if (ilist != null) + { + list = new List(); + foreach (var iitem in ilist) + list.Add((T1)iitem); + } + } + if (list == null) return; + } if (list.Any() == false) return; if (tbref.Columns.Any() == false) return;