Synchronous code

This commit is contained in:
sunkaixuan
2025-06-29 12:05:41 +08:00
parent c2ff548cc7
commit 811c77934e
5 changed files with 24 additions and 8 deletions

View File

@@ -408,7 +408,7 @@ namespace SqlSugar
return await this.Context.Queryable<T>().WhereClassByPrimaryKey(data).IncludesAllFirstLayer().FirstAsync(); return await this.Context.Queryable<T>().WhereClassByPrimaryKey(data).IncludesAllFirstLayer().FirstAsync();
} }
} }
public async Task<bool> ExecuteCommandIdentityIntoEntityAsync() public virtual async Task<bool> ExecuteCommandIdentityIntoEntityAsync()
{ {
var result = InsertObjs.First(); var result = InsertObjs.First();
var identityKeys = GetIdentityKeys(); var identityKeys = GetIdentityKeys();

View File

@@ -1531,7 +1531,7 @@ namespace SqlSugar
//return sql; //return sql;
} }
internal JoinQueryInfo GetJoinInfo(Expression joinExpression, JoinType joinType) public virtual JoinQueryInfo GetJoinInfo(Expression joinExpression, JoinType joinType)
{ {
QueryBuilder.CheckExpressionNew(joinExpression, "Join"); QueryBuilder.CheckExpressionNew(joinExpression, "Join");
QueryBuilder.JoinExpression = joinExpression; QueryBuilder.JoinExpression = joinExpression;

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -392,7 +393,8 @@ namespace SqlSugar
TableId = i, TableId = i,
UpdateSql = column.UpdateSql, UpdateSql = column.UpdateSql,
UpdateServerTime = column.UpdateServerTime, UpdateServerTime = column.UpdateServerTime,
IsPrimarykey=column.IsPrimarykey IsPrimarykey=column.IsPrimarykey,
DataType=column.DataType
}; };
if (column.ForOwnsOnePropertyInfo != null) if (column.ForOwnsOnePropertyInfo != null)
{ {
@@ -440,6 +442,8 @@ namespace SqlSugar
if (column.ForOwnsOnePropertyInfo != null) if (column.ForOwnsOnePropertyInfo != null)
{ {
var owsPropertyValue = column.ForOwnsOnePropertyInfo.GetValue(item, null); var owsPropertyValue = column.ForOwnsOnePropertyInfo.GetValue(item, null);
if (owsPropertyValue == null)
return null;
return column.PropertyInfo.GetValue(owsPropertyValue, null); return column.PropertyInfo.GetValue(owsPropertyValue, null);
} }
else else

View File

@@ -55,11 +55,10 @@ namespace SqlSugar
var item = memberAssignment.Expression; var item = memberAssignment.Expression;
item = ExpressionTool.RemoveConvert(item); item = ExpressionTool.RemoveConvert(item);
//Column IsJson Handler //Column IsJson Handler
if (memberAssignment.Member.CustomAttributes != null) if (entityMaintenance!=null)
{ {
var customAttribute = memberAssignment.Member.GetCustomAttribute<SugarColumn>(); EntityColumnInfo columnInfo = entityMaintenance.GetEntityInfo(type).Columns.FirstOrDefault(it => it.PropertyName == memberAssignment.Member.Name);
if (columnInfo?.IsJson ?? false)
if (customAttribute?.IsJson ?? false)
{ {
var paramterValue = ExpressionTool.DynamicInvoke(item); var paramterValue = ExpressionTool.DynamicInvoke(item);
var parameterName = AppendParameter(new SerializeService().SerializeObject(paramterValue)); var parameterName = AppendParameter(new SerializeService().SerializeObject(paramterValue));
@@ -72,6 +71,15 @@ namespace SqlSugar
continue; continue;
} }
else if (UtilMethods.IsParameterConverter(columnInfo))
{
var value = ExpressionTool.DynamicInvoke(item);
var p=UtilMethods.GetParameterConverter(this.Context.ParameterIndex,this.Context.SugarContext.Context, value, memberAssignment.Expression, columnInfo);
this.Context.Result.Append(base.Context.GetEqString(memberName, p.ParameterName));
this.Context.ParameterIndex++;
this.Context.Parameters.Add(p);
continue;
}
} }
if ((item is MemberExpression) && ((MemberExpression)item).Expression == null) if ((item is MemberExpression) && ((MemberExpression)item).Expression == null)

View File

@@ -292,6 +292,10 @@ namespace SqlSugar
{ {
isubList.RemoveAll(it => it is SubTake); isubList.RemoveAll(it => it is SubTake);
} }
if (isJoin == false && isSubSubQuery&&this.context.CurrentShortName==null)
{
this.context.CurrentShortName=ExpressionTool.GetParameters(allMethods.FirstOrDefault()).FirstOrDefault().Name;
}
List<string> result = isubList.Select(it => List<string> result = isubList.Select(it =>
{ {
it.HasWhere = isHasWhere; it.HasWhere = isHasWhere;