- 增加 FreeSql.Extensions.Linq ThenBy/ThenByDescending 扩展方法 #380;

This commit is contained in:
28810
2020-07-17 18:20:06 +08:00
parent a67e6a8cb5
commit e616f8e4a6
5 changed files with 91 additions and 20 deletions

View File

@ -43,6 +43,63 @@ namespace FreeSql.Tests.Linq
Assert.Equal(item.id, t1[0].id);
}
[Fact]
public void OrderBy()
{
var item = new TestLinqToSql { name = Guid.NewGuid().ToString() };
g.sqlite.Insert<TestLinqToSql>().AppendData(item).ExecuteAffrows();
var t1 = (from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id
select a).ToList();
Assert.True(t1.Any());
Assert.Equal(item.id, t1[0].id);
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id
select a).ToSql(),
(from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id ascending
select a).ToSql());
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id ascending
select a).ToSql(),
g.sqlite.Select<TestLinqToSql>().Where(a => a.id == item.id).OrderBy(a => a.id).ToSql());
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id descending
select a).ToSql(),
g.sqlite.Select<TestLinqToSql>().Where(a => a.id == item.id).OrderByDescending(a => a.id).ToSql());
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id, a.createtime ascending, a.name descending
select a).ToSql(),
(from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id, a.createtime, a.name descending
select a).ToSql());
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id ascending, a.createtime ascending, a.name descending
select a).ToSql(),
g.sqlite.Select<TestLinqToSql>().Where(a => a.id == item.id).OrderBy(a => a.id).OrderBy(a => a.createtime).OrderByDescending(a => a.name).ToSql());
Assert.Equal((from a in g.sqlite.Select<TestLinqToSql>()
where a.id == item.id
orderby a.id descending, a.createtime ascending, a.name descending
select a).ToSql(),
g.sqlite.Select<TestLinqToSql>().Where(a => a.id == item.id).OrderByDescending(a => a.id).OrderBy(a => a.createtime).OrderByDescending(a => a.name).ToSql());
}
[Fact]
public void Select()
{
@ -111,6 +168,7 @@ namespace FreeSql.Tests.Linq
var t1 = (from a in g.sqlite.Select<TestLinqToSql>()
join b in g.sqlite.Select<TestLinqToSqlComment>() on a.id equals b.TestLinqToSqlId
orderby b.id descending
select a).ToList();
Assert.True(t1.Any());
//Assert.Equal(item.id, t1[0].id);