sqlsugar/Src/Asp.Net/SqlSugar/Entities/DefaultCustom.cs

112 lines
3.6 KiB
C#
Raw Normal View History

2025-05-11 16:20:50 +08:00
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlSugar.DbConvert
{
public class EnumToStringConvert: ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(object columnValue, int columnIndex)
{
var name = "@MyEnum" + columnIndex;
Type undertype = SqlSugar.UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型
if (columnValue == null)
{
return new SugarParameter(name, null);
}
else
{
var enumObjString = Enum.Parse(undertype, columnValue + "").ToString();
return new SugarParameter(name, enumObjString);
}
}
public T QueryConverter<T>(IDataRecord dr, int i)
{
var str = dr.GetString(i);
Type undertype = SqlSugar.UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型
return (T)Enum.Parse(undertype, str);
}
}
public class NoParameterCommonPropertyConvert : ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(object columnValue, int columnIndex)
{
if (columnValue == null)
{
new SugarParameter("null", null, null);
}
return new SugarParameter(columnValue+"", null, null);
}
public T QueryConverter<T>(IDataRecord dr, int i)
{
var value = dr.GetValue(i);
return (T)UtilMethods.ChangeType2(value, typeof(T));
}
}
public class CommonPropertyConvert : ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(object columnValue, int columnIndex)
{
var name = "@Common" + columnIndex;
Type undertype = SqlSugar.UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型
return new SugarParameter(name, columnValue, undertype);
}
public T QueryConverter<T>(IDataRecord dr, int i)
{
var value = dr.GetValue(i);
if (value is byte[] && typeof(T) != UtilConstants.ByteArrayType)
{
value = Encoding.UTF8.GetString((byte[])value);
}
return (T)UtilMethods.ChangeType2(value, typeof(T));
}
}
public class Nvarchar2PropertyConvert : ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(object columnValue, int columnIndex)
{
var name = "@Common" + columnIndex;
Type undertype = SqlSugar.UtilMethods.GetUnderType(typeof(T));//获取没有nullable的枚举类型
return new SugarParameter(name, columnValue, undertype) { IsNvarchar2=true };
}
public T QueryConverter<T>(IDataRecord dr, int i)
{
var value = dr.GetString(i);
return (T)(object)value;
}
}
public class NClobPropertyConvert : ISugarDataConverter
{
public SugarParameter ParameterConverter<T>(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<T>(IDataRecord dr, int i)
{
var value = dr.GetString(i);
return (T)(object)value;
}
}
}