From d90257fa1fa5db1c5498a68a6bc3726970f9cf14 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Sun, 20 Apr 2025 17:27:41 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E6=81=A2=E5=A4=8D=20Dictionary=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSql.Extensions.ZeroEntity.xml | 2 +- .../ZeroDbContext.SelectImpl.cs | 6 +- .../ZeroDbContext.cs | 16 +-- FreeSql/FreeSql.xml | 109 ------------------ 4 files changed, 12 insertions(+), 121 deletions(-) diff --git a/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.xml b/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.xml index ce0eb7892..dc8beaadb 100644 --- a/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.xml +++ b/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.xml @@ -82,7 +82,7 @@ 举例2:RightJoin("table1", "id", "user.id", "xid", "user.xid") -> RIGTH JOIN [table1] b ON b.[id] = [a].id] AND b.[xid] = a.[xid] - + WHERE [Id] IN (...) diff --git a/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs b/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs index 61bd8ea66..e776b2cba 100644 --- a/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs +++ b/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.SelectImpl.cs @@ -8,7 +8,7 @@ using System.Data; using System.Data.Common; using System.Linq; using System.Text; -using T = System.Collections.Generic.IDictionary; +using T = System.Collections.Generic.Dictionary; namespace FreeSql.Extensions.ZeroEntity { @@ -249,7 +249,7 @@ namespace FreeSql.Extensions.ZeroEntity T FetchResult(DbDataReader reader) { var fieldIndex = 0; - T result = new Dictionary(); + var result = new T(); for (var aliasIndex = 0; aliasIndex < _tableAlias.Count; aliasIndex++) { var navValue = result; @@ -281,7 +281,7 @@ namespace FreeSql.Extensions.ZeroEntity fieldIndex += _tableAlias[aliasIndex].Table.Columns.Count; continue; } - drctx.Result = new Dictionary(); + drctx.Result = new T(); navValue[_tableAlias[aliasIndex].NavPath.LastOrDefault()] = drctx.Result; } _fieldReader[aliasIndex](drctx); diff --git a/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.cs b/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.cs index adc6052b6..de6f56d6c 100644 --- a/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.cs +++ b/Extensions/FreeSql.Extensions.ZeroEntity/ZeroDbContext.cs @@ -10,7 +10,7 @@ using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Reflection; -using T = System.Collections.Generic.IDictionary; +using T = System.Collections.Generic.Dictionary; namespace FreeSql.Extensions.ZeroEntity { @@ -607,7 +607,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) { var valueEach = _AuditJsonElementMethodJsonElementEnumerateObject.Invoke(value, new object[0]) as IEnumerable; if (valueEach == null) return resetValue?.Invoke(null); - var newValue = new Dictionary(); + var newValue = new T(); foreach (var valueItem in valueEach) { if (valueItem == null) continue; @@ -1101,7 +1101,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) var key = GetEntityKeyString(table, entityFrom); if (key == null) return; - var state = new EntityState(new Dictionary(), key); + var state = new EntityState(new T(), key); LocalMapEntityValue(table, entityFrom, state.Value); @@ -1140,7 +1140,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) //entityTo.Remove(nav.Key); continue; } - var valTo = new Dictionary(); + var valTo = new T(); SetNavigateRelationshipValue(nav.Value, entityFrom, valFrom); if (LocalMapEntityValue(nav.Value.RefTable, valFrom, valTo)) entityTo[nav.Key] = valTo; @@ -1159,7 +1159,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) foreach (var fromObj in valFromList) { if (fromObj is T fromItem == false || fromItem == null) continue; - var toItem = new Dictionary(); + var toItem = new T(); if (LocalMapEntityValue(nav.Value.RefTable, fromItem, toItem)) valTo.Add(toItem); } @@ -1179,7 +1179,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) { if (fromObj is T fromItem == false || fromItem == null) continue; LocalAttachCascade(nav.Value.RefTable, fromItem, includeOutside); //创建新的 states - var toItem = new Dictionary(); + var toItem = new T(); foreach (var col in nav.Value.RefTable.Primarys) //多对多状态只存储 PK if (fromItem.TryGetValue(col.CsName, out var colval)) toItem[col.CsName] = colval; @@ -1197,7 +1197,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) continue; } LocalAttachCascade(nav.Value.RefTable, valFrom, includeOutside); //创建新的 states - var valTo = new Dictionary(); + var valTo = new T(); foreach (var col in nav.Value.RefTable.Columns.Values) if (valFrom.TryGetValue(col.CsName, out var colval)) valTo[col.CsName] = colval; @@ -1568,7 +1568,7 @@ ManyToMany 级联删除中间表(注意不删除外部根) foreach (var ritem in rights) { if (ritem is T right == false || right == null) continue; - var midval = new Dictionary(); + var midval = new T(); for (var x = 0; x < nav.Columns.Count; x++) if (entity.TryGetValue(nav.Columns[x], out var colval)) midval[nav.MiddleColumns[x]] = colval; diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 3a9fdc72b..2addd817c 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -1097,93 +1097,6 @@ - - - 动态创建实体类型 - - - - - 配置Class - - 类名 - 类标记的特性[Table(Name = "xxx")] [Index(xxxx)] - - - - - 获取类型构建器,可作为要构建的Type来引用 - - - - - 配置属性 - - 属性名称 - 属性类型 - 属性标记的特性-支持多个 - - - - - 配置属性 - - 属性名称 - 属性类型 - 该属性是否重写父类属性 - 属性标记的特性-支持多个 - - - - - 配置属性 - - 属性名称 - 属性类型 - 该属性是否重写父类属性 - 属性默认值 - 属性标记的特性-支持多个 - - - - - 配置父类 - - 父类类型 - - - - - Override属性 - - - - - - Emit动态创建出Class - Type - - - - - - Emit动态创建出Class - Type,不附带获取TableInfo - - - - - - 首字母小写 - - - - - - - 首字母大写 - - - - 获取实体的主键值,以 "*|_,[,_|*" 分割,当任意一个主键属性无值时,返回 "" @@ -5984,28 +5897,6 @@ 对象池 - - - 动态构建Class Type - - - - - - 根据字典,创建 table 对应的实体对象 - - - - - - - - 根据实体对象,创建 table 对应的字典 - - - - - C#: that >= between && that <= and