Synchronization code

This commit is contained in:
sunkaixuan 2022-11-16 23:36:31 +08:00
parent 20ae581dfc
commit c895edfc98
3 changed files with 57 additions and 2 deletions

View File

@ -1,7 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Runtime.InteropServices;
using System.Text;
using static SqlSugar.QueryFilterProvider;
namespace SqlSugar
{
@ -9,6 +12,7 @@ namespace SqlSugar
{
internal SqlSugarProvider Context { get; set; }
private List<SqlFilterItem> _Filters { get; set; }
private List<SqlFilterItem> _BackUpFilters { get; set; }
public IFilter Add(SqlFilterItem filter)
{
@ -46,5 +50,51 @@ namespace SqlSugar
{
_Filters = new List<SqlFilterItem>();
}
public void ClearAndBackup()
{
_BackUpFilters = _Filters;
_Filters = new List<SqlFilterItem>();
}
public void Restore()
{
_Filters = _BackUpFilters;
if (_Filters == null)
{
_Filters = new List<SqlFilterItem>();
}
}
public void AddTableFilter<T>(Expression<Func<T,bool>> expression, FilterJoinPosition filterJoinType = FilterJoinPosition.On) where T : class,new()
{
var isOn = filterJoinType == FilterJoinPosition.On;
var tableFilter = new TableFilterItem<T>(expression, isOn);
this.Add(tableFilter);
}
public void AddTableFilterIF<T>(bool isAppendFilter,Expression<Func<T, bool>> expression, FilterJoinPosition filterJoinType = FilterJoinPosition.On) where T : class, new()
{
if (isAppendFilter)
{
AddTableFilter(expression, filterJoinType);
}
}
public void AddTableFilter(Type type,Expression expression, FilterJoinPosition filterJoinType = FilterJoinPosition.On)
{
var isOn = filterJoinType == FilterJoinPosition.On;
this.Add(new TableFilterItem<object>(type, expression, isOn));
}
public void AddTableFilterIF(bool isAppendFilter, Type type, Expression expression, FilterJoinPosition posType = FilterJoinPosition.On)
{
if (isAppendFilter)
{
AddTableFilter(type, expression, posType);
}
}
public enum FilterJoinPosition
{
On=0,
Where=1
}
}
}

View File

@ -539,6 +539,11 @@ namespace SqlSugar
FieldValue = value.ObjToStringNew(),
CSharpTypeName = column.PropertyInfo.PropertyType.Name
});
if(value is Enum&&this.Context.CurrentConnectionConfig?.MoreSettings?.TableEnumIsString!=true)
{
data.Value.FieldValue = Convert.ToInt64(value).ObjToString();
data.Value.CSharpTypeName = "int";
}
//if (this.Context.CurrentConnectionConfig.DbType == DbType.PostgreSQL)
//{
// data.Value.FieldValueConvertFunc = it =>

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
@ -223,7 +223,7 @@ namespace SqlSugar
case SplitType.Year:
return Convert.ToDateTime(time.ToString("yyyy-01-01"));
default:
throw new Exception($"SplitType paramter error ");
throw new Exception($"SplitType parameter error ");
}
}
private DateTime GetMondayDate()