From 7311ae600cd960edd04c0150dd5a4fae96ac8041 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Wed, 22 Apr 2020 13:08:38 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20Guid=20->=20MapType(st?= =?UTF-8?q?ring)=20=E5=9C=A8=20FreeSql.DbContext=20=E7=9A=84=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=8D=A2=E9=94=99=E8=AF=AF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 16 ---------------- .../SqlServer/MapType/ToStringTest.cs | 14 ++++++++++++++ FreeSql/Extensions/EntityUtilExtensions.cs | 1 + 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 9f17feac..2c69043d 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -120,13 +120,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 @@ -457,14 +450,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/MapType/ToStringTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/MapType/ToStringTest.cs index ab17e685..67f00b66 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/MapType/ToStringTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/MapType/ToStringTest.cs @@ -18,6 +18,7 @@ namespace FreeSql.Tests.SqlServerMapType class ToStringMap { + [Column(MapType = typeof(string))] public Guid id { get; set; } [Column(MapType = typeof(string))] @@ -49,6 +50,19 @@ namespace FreeSql.Tests.SqlServerMapType [Fact] public void Enum1() { + g.sqlserver.Aop.AuditValue += new EventHandler((s, e) => + { + if (e.Column.CsType == typeof(Guid) && + e.Column.Attribute.MapType == typeof(string) && + e.Value?.ToString() == Guid.Empty.ToString()) + e.Value = FreeUtil.NewMongodbId(); + }); + + g.sqlserver.GetRepository().InsertOrUpdate(new ToStringMap + { + + }); + //insert var orm = g.sqlserver; var item = new ToStringMap { }; diff --git a/FreeSql/Extensions/EntityUtilExtensions.cs b/FreeSql/Extensions/EntityUtilExtensions.cs index 044fd446..4236a48d 100644 --- a/FreeSql/Extensions/EntityUtilExtensions.cs +++ b/FreeSql/Extensions/EntityUtilExtensions.cs @@ -55,6 +55,7 @@ namespace FreeSql.Extensions.EntityUtil { Expression newguid = Expression.Call(MethodFreeUtilNewMongodbId); if (pks[a].Attribute.MapType != pks[a].CsType) newguid = FreeSql.Internal.Utils.GetDataReaderValueBlockExpression(pks[a].CsType, newguid); + if (pks[a].CsType == typeof(Guid)) newguid = Expression.Convert(newguid, typeof(Guid)); if (pks[a].CsType == typeof(Guid?)) newguid = Expression.Convert(newguid, typeof(Guid?)); expthen = Expression.Block( new Expression[]{