Update json 2 sql

This commit is contained in:
sunkaixuan
2022-06-20 13:31:23 +08:00
parent 0a5d7a8fb8
commit cef061ec94
5 changed files with 45 additions and 39 deletions

View File

@@ -55,8 +55,8 @@ namespace SqlSugar
if (item.Value == null)
return null;
var valueString = item.Value.ToString();
var vallue = SqlValueHelper.GetValue(valueString);
var type = SqlValueHelper.GetType(valueString);
var vallue = Json2SqlHelper.GetValue(valueString);
var type = Json2SqlHelper.GetType(valueString);
return UtilMethods.ConvertDataByTypeName(type,vallue);
}
}

View File

@@ -76,7 +76,7 @@ namespace SqlSugar
private string GetSqlPartByString(object value, List<SugarParameter> pars)
{
var valueString = value.ObjToString().Trim();
if (SqlValueHelper.IsSqlValue(valueString))
if (Json2SqlHelper.IsSqlValue(valueString))
{
return GetParameterName(pars, valueString);
}
@@ -105,9 +105,9 @@ namespace SqlSugar
}
private string GetParameterName(List<SugarParameter> pars, string valueString)
{
object parvalue = SqlValueHelper.GetValue(valueString);
object parvalue = Json2SqlHelper.GetValue(valueString);
SugarParameter parameter = new SugarParameter("@p" + pars.Count(), parvalue);
var type = SqlValueHelper.GetType(valueString);
var type = Json2SqlHelper.GetType(valueString);
parvalue = UtilMethods.ConvertDataByTypeName(type, parvalue.ObjToString());
var parname = GetParameterName(pars, parvalue);
return parname;

View File

@@ -0,0 +1,39 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;
namespace SqlSugar
{
internal class Json2SqlHelper
{
public static bool IsSqlValue(string valueString)
{
return Regex.IsMatch(valueString, @"^\{\w{1,10}\}\:");
}
public static string GetType(string valueString)
{
return Regex.Match(valueString, @"^\{(\w+)\}\:").Groups[1].Value;
}
public static string GetValue(string valueString)
{
return Regex.Replace(valueString, @"^\{\w{1,10}\}\:", "");
}
public static List<string> GetTableNames(string json)
{
List<string> result = new List<string>();
var mainTable = JObject.Parse(json).AsJEnumerable().Where(it =>
it.Path.ToLower().IsIn(
JsonProviderConfig.KeyInsertable.Get().ToLower(),
JsonProviderConfig.KeyUpdateable.Get().ToLower(),
JsonProviderConfig.KeyDeleteable.Get().ToLower(),
JsonProviderConfig.KeyQueryable.Get().ToLower()
)).FirstOrDefault();
if (mainTable != null)
result.Add(mainTable.First().ToString());
return result;
}
}
}

View File

@@ -1,24 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace SqlSugar
{
internal class SqlValueHelper
{
public static bool IsSqlValue(string valueString)
{
return Regex.IsMatch(valueString, @"^\{\w{1,10}\}\:");
}
public static string GetType(string valueString)
{
return Regex.Match(valueString, @"^\{(\w+)\}\:").Groups[1].Value;
}
public static string GetValue(string valueString)
{
return Regex.Replace(valueString, @"^\{\w{1,10}\}\:", "");
}
}
}

View File

@@ -31,16 +31,7 @@ namespace SqlSugar
}
public List<string> GetTableNameList(string json)
{
List<string> result = new List<string>();
var mainTable = JObject.Parse(json).AsJEnumerable().Where(it =>
it.Path.ToLower().IsIn(
JsonProviderConfig.KeyInsertable.Get().ToLower(),
JsonProviderConfig.KeyUpdateable.Get().ToLower(),
JsonProviderConfig.KeyDeleteable.Get().ToLower(),
JsonProviderConfig.KeyQueryable.Get().ToLower()
)).FirstOrDefault();
if (mainTable != null)
result.Add(mainTable.First().ToString());
List<string> result = Json2SqlHelper.GetTableNames(json);
return result;
}
}