order by group by

This commit is contained in:
sunkaixuan
2017-04-26 02:23:35 +08:00
parent 83238ec3d7
commit 51c10cb80a
2 changed files with 18 additions and 4 deletions

View File

@@ -39,7 +39,7 @@ namespace OrmTest.UnitTest
#region dr ot entity
db.IgnoreComumns.Add("TestId", "Student");
var d5 = db.Queryable<Student>().ToList();
var d51 = db.Queryable<Student>().OrderBy(it=>it.Id).ToSql();
var d51 = db.Queryable<Student>().GroupBy(it=>it.Id).OrderBy(it=>it.Id).Select(it=>it.Id).ToSql();
var dr3 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name=it.Name,Student=it}).ToList();
var dr0 = db.Queryable<Student>().Select(it => new { id=it.Id,w=new { x=it } }).ToList();
var dr1 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();

View File

@@ -174,7 +174,7 @@ namespace SqlSugar
{
var orderByValue = SqlBuilder.LambadaQueryBuilder.OrderByValue;
if (SqlBuilder.LambadaQueryBuilder.OrderByValue.IsNullOrEmpty()) {
SqlBuilder.LambadaQueryBuilder.OrderByValue = "ORDER ";
SqlBuilder.LambadaQueryBuilder.OrderByValue = "ORDER BY ";
}
SqlBuilder.LambadaQueryBuilder.OrderByValue += string.IsNullOrEmpty(orderByValue) ? orderFileds : ("," + orderFileds);
return this;
@@ -194,12 +194,19 @@ namespace SqlSugar
public ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression)
{
throw new NotImplementedException();
_GroupBy(expression);
return this;
}
public ISugarQueryable<T> GroupBy(string groupFileds)
{
throw new NotImplementedException();
var croupByValue = SqlBuilder.LambadaQueryBuilder.GroupByValue;
if (SqlBuilder.LambadaQueryBuilder.GroupByValue.IsNullOrEmpty())
{
SqlBuilder.LambadaQueryBuilder.GroupByValue = "GROUP BY ";
}
SqlBuilder.LambadaQueryBuilder.GroupByValue += string.IsNullOrEmpty(croupByValue) ? groupFileds : ("," + groupFileds);
return this;
}
public ISugarQueryable<T> Skip(int index)
@@ -422,6 +429,13 @@ namespace SqlSugar
OrderBy(orderByValue.GetResultString() + " " + type.ToString().ToUpper());
return this;
}
protected ISugarQueryable<T> _GroupBy(Expression expression)
{
var isSingle = SqlBuilder.LambadaQueryBuilder.IsSingle();
var orderByValue = SqlBuilder.LambadaQueryBuilder.GetExpressionValue(expression, isSingle ? ResolveExpressType.FieldSingle : ResolveExpressType.FieldMultiple);
GroupBy(orderByValue.GetResultString());
return this;
}
#endregion
}
}