public void ProjectTransformToDto() { using (var s = OpenSession()) using (s.BeginTransaction()) { PersonSummary summary = null; var actual = s.QueryOver <Person>() .SelectList(list => list .SelectGroup(p => p.Name).WithAlias(() => summary.Name) .Select(Projections.RowCount()).WithAlias(() => summary.Count)) .OrderByAlias(() => summary.Name).Asc .TransformUsing(Transformers.AliasToBean <PersonSummary>()) .List <PersonSummary>(); Assert.That(actual.Count, Is.EqualTo(2)); Assert.That(actual[0].Name, Is.EqualTo("test person 1")); Assert.That(actual[0].Count, Is.EqualTo(2)); Assert.That(actual[1].Name, Is.EqualTo("test person 2")); Assert.That(actual[1].Count, Is.EqualTo(1)); } }
public async Task ProjectTransformToDtoAsync() { using (var s = OpenSession()) using (s.BeginTransaction()) { PersonSummary summary = null; var actual = await(s.QueryOver <Person>() .SelectList(list => list .SelectGroup(p => p.Name).WithAlias(() => summary.Name) //GH1985: DateTime.xxxx are not supported in SelectGroup .SelectGroup(p => p.BirthDate.Year).WithAlias(() => summary.BirthYear) .Select(Projections.RowCount()).WithAlias(() => summary.Count)) .OrderByAlias(() => summary.Name).Asc .TransformUsing(Transformers.AliasToBean <PersonSummary>()) .ListAsync <PersonSummary>()); Assert.That(actual.Count, Is.EqualTo(2)); Assert.That(actual[0].Name, Is.EqualTo("test person 1")); Assert.That(actual[0].Count, Is.EqualTo(2)); Assert.That(actual[1].Name, Is.EqualTo("test person 2")); Assert.That(actual[1].Count, Is.EqualTo(1)); } }
public void OrderBy() { ICriteria expected = CreateTestCriteria(typeof(Person), "personAlias") .AddOrder(Order.Asc("Name")) .AddOrder(Order.Desc("Age")) .AddOrder(Order.Desc("personAlias.Name")) .AddOrder(Order.Asc("personAlias.Age")) .AddOrder(Order.Asc("summary")) .AddOrder(Order.Desc("Count")); Person personAlias = null; PersonSummary summary = null; IQueryOver <Person> actual = CreateTestQueryOver <Person>(() => personAlias) .OrderBy(p => p.Name).Asc .ThenBy(p => p.Age).Desc .ThenBy(() => personAlias.Name).Desc .ThenBy(() => personAlias.Age).Asc .OrderByAlias(() => summary).Asc .ThenByAlias(() => summary.Count).Desc; AssertCriteriaAreEqual(expected, actual); }