Optimize single table query select dto

This commit is contained in:
sunkaixuan 2022-09-17 13:01:55 +08:00
parent caa04cf787
commit 861ebddecb

View File

@ -1059,6 +1059,30 @@ namespace SqlSugar
else else
{ {
var selects = this.QueryBuilder.GetSelectValueByString(); var selects = this.QueryBuilder.GetSelectValueByString();
if (selects.ObjToString().ToLower().IsContainsIn(".","("," as "))
{
return this.Select<TResult>(selects);
}
var resultColumns=this.Context.EntityMaintenance.GetEntityInfo<TResult>().Columns;
var dbColumns = this.EntityInfo.Columns.Where(it=>!it.IsIgnore);
StringBuilder sb = new StringBuilder();
foreach (var item in resultColumns)
{
var firstColumn= dbColumns.FirstOrDefault(z =>
z.PropertyName.EqualCase(item.PropertyName) ||
z.DbColumnName.EqualCase(item.PropertyName));
if (firstColumn != null)
{
var dbColumnName = firstColumn.DbColumnName;
var AsName = item.PropertyName;
sb.Append($"{this.SqlBuilder.GetTranslationColumnName(dbColumnName)} AS {AsName} ,");
}
}
selects = sb.ToString().TrimEnd(',');
if (selects == "")
{
selects = "*";
}
return this.Select<TResult>(selects); return this.Select<TResult>(selects);
} }
} }