Synchronization code

This commit is contained in:
sunkaixuan
2023-05-24 18:22:58 +08:00
parent c102d2ed84
commit aca438f018
2 changed files with 32 additions and 19 deletions

View File

@@ -1138,6 +1138,16 @@ namespace SqlSugar
{
return this.Select<TResult>(expression);
}
if (sql.StartsWith("*,"))
{
var columns = this.Context.EntityMaintenance.GetEntityInfo<T>()
.Columns.Where(it => typeof(TResult).GetProperties().Any(s => s.Name.EqualCase(it.PropertyName))).Where(it => it.IsIgnore == false).ToList();
if (columns.Any())
{
sql = string.Join(",", columns.Select(it => $"{SqlBuilder.GetTranslationColumnName(it.DbColumnName)} AS {SqlBuilder.GetTranslationColumnName(it.PropertyName)} "))
+ "," + sql.TrimStart('*').TrimStart(',');
}
}
if (this.QueryBuilder.TableShortName.IsNullOrEmpty())
{
this.QueryBuilder.TableShortName = clone.QueryBuilder.TableShortName;

View File

@@ -709,28 +709,31 @@ namespace SqlSugar
var methodInfo = callExpresion.Method;
foreach (var item in datas)
{
if (callExpresion.Arguments.Count == 0)
if (item != null)
{
methodInfo.Invoke(item, null);
}
else
{
List<object> methodParameters = new List<object>();
foreach (var callItem in callExpresion.Arguments)
if (callExpresion.Arguments.Count == 0)
{
var parameter = callItem.GetType().GetProperties().FirstOrDefault(it => it.Name == "Value");
if (parameter == null)
{
var value = LambdaExpression.Lambda(callItem).Compile().DynamicInvoke();
methodParameters.Add(value);
}
else
{
var value = parameter.GetValue(callItem, null);
methodParameters.Add(value);
}
methodInfo.Invoke(item, null);
}
else
{
List<object> methodParameters = new List<object>();
foreach (var callItem in callExpresion.Arguments)
{
var parameter = callItem.GetType().GetProperties().FirstOrDefault(it => it.Name == "Value");
if (parameter == null)
{
var value = LambdaExpression.Lambda(callItem).Compile().DynamicInvoke();
methodParameters.Add(value);
}
else
{
var value = parameter.GetValue(callItem, null);
methodParameters.Add(value);
}
}
methodInfo.Invoke(item, methodParameters.ToArray());
}
methodInfo.Invoke(item, methodParameters.ToArray());
}
}
}