Update exp to sql

This commit is contained in:
sunkaixuan
2022-08-02 20:55:53 +08:00
parent 42ef42a97d
commit 33da4bf900
3 changed files with 20 additions and 8 deletions

View File

@@ -454,17 +454,24 @@ namespace SqlSugar
} }
return result; return result;
} }
internal static List<NewExpressionInfo> GetNewDynamicexpressionInfos(Expression item) internal static List<NewExpressionInfo> GetNewDynamicexpressionInfos(Expression item, ExpressionContext context)
{ {
List<NewExpressionInfo> result = new List<NewExpressionInfo>(); List<NewExpressionInfo> result = new List<NewExpressionInfo>();
foreach (var binding in ((NewExpression)item).Arguments) foreach (var binding in ((NewExpression)item).Arguments)
{ {
NewExpressionInfo additem = new NewExpressionInfo();
if (binding is MemberExpression)
{
var member = (MemberExpression)binding;
//var memberAssignment = binding; //var memberAssignment = binding;
//NewExpressionInfo additem = new NewExpressionInfo(); //NewExpressionInfo additem = new NewExpressionInfo();
//additem.Name = memberAssignment.Member.Name; additem.RightName = member.Member.Name;
//additem.ShortName = (memberAssignment.Expression as MemberExpression).Expression + ""; additem.ShortName = member.Expression + "";
additem.RightName = member.Member.Name;
additem.RightDbName = context.GetDbColumnName(member.Type.Name, additem.RightName);
//additem.Value = ""; //additem.Value = "";
//result.Add(additem); result.Add(additem);
}
} }
return result; return result;
} }

View File

@@ -469,7 +469,7 @@ namespace SqlSugar
} }
else else
{ {
newExpressionInfos = ExpressionTool.GetNewexpressionInfos(item, this.Context); newExpressionInfos = ExpressionTool.GetNewDynamicexpressionInfos(item, this.Context);
} }
foreach (NewExpressionInfo newExpressionInfo in newExpressionInfos) foreach (NewExpressionInfo newExpressionInfo in newExpressionInfos)
{ {

View File

@@ -436,6 +436,11 @@ namespace SqlSugar
{ {
var key = typeName + "." + name; var key = typeName + "." + name;
var info = readerValues.Select(it => it.Key).FirstOrDefault(it => it.ToLower() == key.ToLower()); var info = readerValues.Select(it => it.Key).FirstOrDefault(it => it.ToLower() == key.ToLower());
if (info == null && typeName !=null && typeName.Contains("<>f__AnonymousType"))
{
key = item.Name + "." + name;
info = readerValues.Select(it => it.Key).FirstOrDefault(it => it.ToLower() == key.ToLower());
}
var oldInfo = info; var oldInfo = info;
if (mappingKeys!=null&&mappingKeys.ContainsKey(item.Name)) if (mappingKeys!=null&&mappingKeys.ContainsKey(item.Name))
{ {