From 577203d47af086848b83c2fac8ab79a1b3ec7a6a Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 5 May 2025 15:00:26 +0800 Subject: [PATCH] SqlSugar : Improve the NoSql extension --- .../SqlSugar/Abstract/AdoProvider/AdoProvider.cs | 1 + .../DbBindProvider/IDataReaderEntityBuilder.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/AdoProvider/AdoProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/AdoProvider/AdoProvider.cs index 38f3ccfb4..414c4f617 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/AdoProvider/AdoProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/AdoProvider/AdoProvider.cs @@ -31,6 +31,7 @@ namespace SqlSugar #endregion #region Properties + public virtual bool IsNoSql { get; set; } internal bool IsOpenAsync { get; set; } protected List OutputParameters { get; set; } public virtual string SqlParameterKeyWord { get { return "@"; } } diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs index 6a002ba7c..e8e4ce374 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs @@ -300,6 +300,21 @@ namespace SqlSugar validPropertyName = validPropertyName == "byte[]" ? "byteArray" : validPropertyName; CSharpDataType validPropertyType = (CSharpDataType)Enum.Parse(typeof(CSharpDataType), validPropertyName); + #region NoSql + if (this.Context.Ado is AdoProvider provider) + { + if (provider.IsNoSql) + { + method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType); + if (method.IsVirtual) + generator.Emit(OpCodes.Callvirt, method); + else + generator.Emit(OpCodes.Call, method); + return; + } + } + #endregion + #region Sqlite Logic if (this.Context.CurrentConnectionConfig.DbType == DbType.Sqlite) {