From 494647b0b134991a45577526ff5e05b47d716a13 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 29 May 2023 11:39:15 +0800 Subject: [PATCH] Synchronization code --- .../SqlSugar/Entities/DefaultCustom.cs | 17 +++++++++++++++++ .../ExpressionsToSql/Common/SugarParameter.cs | 1 + .../Realization/Oracle/OracleProvider.cs | 7 ++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Entities/DefaultCustom.cs b/Src/Asp.NetCore2/SqlSugar/Entities/DefaultCustom.cs index ba247b3b1..a7dada438 100644 --- a/Src/Asp.NetCore2/SqlSugar/Entities/DefaultCustom.cs +++ b/Src/Asp.NetCore2/SqlSugar/Entities/DefaultCustom.cs @@ -85,4 +85,21 @@ namespace SqlSugar.DbConvert return (T)(object)value; } } + + public class NClobPropertyConvert : ISugarDataConverter + { + public SugarParameter ParameterConverter(object columnValue, int columnIndex) + { + var name = "@Common" + columnIndex; + Type undertype = SqlSugar.UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型 + return new SugarParameter(name, columnValue, undertype) { IsNClob = true }; + } + + public T QueryConverter(IDataRecord dr, int i) + { + + var value = dr.GetString(i); + return (T)(object)value; + } + } } diff --git a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Common/SugarParameter.cs b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Common/SugarParameter.cs index 6184aade5..046f02c36 100644 --- a/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Common/SugarParameter.cs +++ b/Src/Asp.NetCore2/SqlSugar/ExpressionsToSql/Common/SugarParameter.cs @@ -11,6 +11,7 @@ namespace SqlSugar { public bool IsRefCursor { get; set; } public bool IsClob { get; set; } + public bool IsNClob { get; set; } public bool IsNvarchar2 { get; set; } public SugarParameter(string name, object value) { diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs index 697dc3adc..d6991b1dd 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/OracleProvider.cs @@ -219,6 +219,11 @@ namespace SqlSugar sqlParameter.OracleDbType = OracleDbType.Clob; sqlParameter.Value = parameter.Value; } + if (parameter.IsNClob) + { + sqlParameter.OracleDbType = OracleDbType.NClob; + sqlParameter.Value = parameter.Value; + } if (parameter.IsArray) { sqlParameter.OracleDbType = OracleDbType.Varchar2; @@ -287,7 +292,7 @@ namespace SqlSugar if (isVarchar && sqlParameter.DbType == System.Data.DbType.String) { sqlParameter.DbType = System.Data.DbType.AnsiString; - } + } ++index; } return result;