mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-23 22:11:36 +08:00
Add ICustomConditionalFunc
This commit is contained in:
parent
07a768c810
commit
2152cd065e
@ -129,7 +129,17 @@ namespace SqlSugar
|
||||
if (model is ConditionalModel)
|
||||
{
|
||||
var item = model as ConditionalModel;
|
||||
if (item.FieldName == $"[value=sql{UtilConstants.ReplaceKey}]")
|
||||
if (item.CustomConditionalFunc != null)
|
||||
{
|
||||
var colIndex = mainIndex + beginIndex;
|
||||
var colType = colIndex == 0 ? "" : "AND";
|
||||
var custom = item.CustomConditionalFunc.GetConditionalSql(item, colIndex);
|
||||
parameters.AddRange(custom.Value);
|
||||
builder.AppendFormat(" "+colType + " "+custom.Key);
|
||||
mainIndex++;
|
||||
continue;
|
||||
}
|
||||
else if (item.FieldName == $"[value=sql{UtilConstants.ReplaceKey}]")
|
||||
{
|
||||
builder.Append(item.FieldValue);
|
||||
continue;
|
||||
|
@ -25,6 +25,14 @@ namespace SqlSugar
|
||||
public string FieldName { get; set; }
|
||||
public string FieldValue { get; set; }
|
||||
public string CSharpTypeName { get; set; }
|
||||
|
||||
|
||||
public ICustomConditionalFunc CustomConditionalFunc { get; set; }
|
||||
public string CustomP1 { get; set; }
|
||||
public string CustomP2 { get; set; }
|
||||
public string CustomP3 { get; set; }
|
||||
public string CustomP4 { get; set; }
|
||||
|
||||
public ConditionalType ConditionalType { get; set; }
|
||||
[Newtonsoft.Json.JsonIgnoreAttribute]
|
||||
public Func<string,object> FieldValueConvertFunc { get; set; }
|
||||
|
13
Src/Asp.Net/SqlSugar/Interface/ICustomConditionalFunc.cs
Normal file
13
Src/Asp.Net/SqlSugar/Interface/ICustomConditionalFunc.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SqlSugar
|
||||
{
|
||||
public interface ICustomConditionalFunc
|
||||
{
|
||||
KeyValuePair<string, SugarParameter[]> GetConditionalSql(ConditionalModel json,int index);
|
||||
}
|
||||
}
|
@ -138,6 +138,7 @@
|
||||
<Compile Include="ExpressionsToSql\Subquery\Items\SubSelectStringJoin.cs" />
|
||||
<Compile Include="ExpressionsToSql\Subquery\Items\SubWithNoLock.cs" />
|
||||
<Compile Include="ExpressionsToSql\Subquery\Items\SubEnableTableFilter.cs" />
|
||||
<Compile Include="Interface\ICustomConditionalFunc.cs" />
|
||||
<Compile Include="Json2Sql\Entities\JsonDeleteResult.cs" />
|
||||
<Compile Include="Json2Sql\Entities\JsonInsertResult.cs" />
|
||||
<Compile Include="Json2Sql\Entities\JsonQueryResult.cs" />
|
||||
|
@ -79,6 +79,17 @@ namespace SqlSugar
|
||||
}
|
||||
return value;
|
||||
}
|
||||
public static string ToCheckRegexW(this string value)
|
||||
{
|
||||
if (Regex.IsMatch(value,@"^\w+$"))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"ToCheckRegexW {value} format error ");
|
||||
}
|
||||
}
|
||||
internal static string ToLower(this string value ,bool isAutoToLower)
|
||||
{
|
||||
if (value == null) return null;
|
||||
|
Loading…
Reference in New Issue
Block a user