From 306f619e90558df042ff4166b5386b4ad44f0a4c Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Wed, 19 Aug 2020 16:11:22 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20Dto=20=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E6=9F=A5=E8=AF=A2=E5=B1=9E=E6=80=A7=E5=90=8D=E4=B8=8D?= =?UTF-8?q?=E5=8C=BA=E5=88=86=E5=A4=A7=E5=B0=8F=E5=86=99=20bug=20#427?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbContext/DbContextOptions.cs | 4 ++-- FreeSql.DbContext/FreeSql.DbContext.xml | 20 ++----------------- FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 15 ++++++++++++++ FreeSql/Internal/CommonExpression.cs | 4 ++-- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/FreeSql.DbContext/DbContext/DbContextOptions.cs b/FreeSql.DbContext/DbContext/DbContextOptions.cs index e43ff5ae..25cd8df4 100644 --- a/FreeSql.DbContext/DbContext/DbContextOptions.cs +++ b/FreeSql.DbContext/DbContext/DbContextOptions.cs @@ -16,8 +16,8 @@ namespace FreeSql /// - 保存的时候,实体的属性集合是空的,如何操作?记录全部删除? /// - 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作? /// - /// 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新) - /// - 属性集合为空时,删除他们的所有关联数据(中间表) + /// 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新) + /// - 属性集合为空时,删除他们的所有关联数据(中间表) /// - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录 /// public bool EnableAddOrUpdateNavigateList { get; set; } = false; diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 312b0c42..5a0c8bd0 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -86,8 +86,8 @@ - 保存的时候,实体的属性集合是空的,如何操作?记录全部删除? - 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作? - 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新) - - 属性集合为空时,删除他们的所有关联数据(中间表) + 【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新) + - 属性集合为空时,删除他们的所有关联数据(中间表) - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录 @@ -130,13 +130,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 @@ -532,14 +525,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs index 81dd4ac7..63226af1 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs @@ -435,9 +435,24 @@ namespace FreeSql.Tests } public enum TestUpdateModelEnum { x1, x2, x3 } + public class Cadre + { + public int? education { get; set; } + public int? Education { get; set; } + } + public class TbCadre + { + public Guid Id { get; set; } + public int? Education2 { get; set; } + } + [Fact] public void Test1() { + g.sqlite.Insert(new[] { new TbCadre { Education2 = 10 }, new TbCadre { Education2 = 11 } }).ExecuteAffrows(); + var tst102 = g.sqlite.Select().First(a => new Cadre { Education = a.Education2 }); + + var testemoji = new TestGuidId { xxx = "💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀" }; Assert.Equal(1, g.sqlserver.Insert(testemoji).ExecuteAffrows()); var emoji = g.sqlserver.Select().Where(a => a.Id == testemoji.Id).First(); diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index d6382158..584962a2 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -102,7 +102,7 @@ namespace FreeSql.Internal { var child = new ReadAnonymousTypeInfo { - Property = tb.Properties.TryGetValue(map[idx].Column.CsName, out var tryprop) ? tryprop : tb.Type.GetProperty(map[idx].Column.CsName, BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance), + Property = tb.Properties.TryGetValue(map[idx].Column.CsName, out var tryprop) ? tryprop : tb.Type.GetProperty(map[idx].Column.CsName, BindingFlags.Public | BindingFlags.Instance), CsName = map[idx].Column.CsName, DbField = $"{map[idx].Table.Alias}.{_common.QuoteSqlName(map[idx].Column.Attribute.Name)}", CsType = map[idx].Column.CsType, @@ -214,7 +214,7 @@ namespace FreeSql.Internal if (initAssignExp == null) continue; var child = new ReadAnonymousTypeInfo { - Property = initExp.Type.GetProperty(initExp.Bindings[a].Member.Name, BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance), + Property = initExp.Type.GetProperty(initExp.Bindings[a].Member.Name, BindingFlags.Public | BindingFlags.Instance), CsName = initExp.Bindings[a].Member.Name, CsType = initAssignExp.Expression.Type, MapType = initAssignExp.Expression.Type