public void ShouldDoMultipleProjections() { var result = AuditReader().CreateQuery().ForEntitiesAtRevision(typeof(Car), 2) .TraverseRelation("Owner", JoinType.InnerJoin) .AddOrder(AuditEntity.Property("Age").Asc()) .AddProjection(AuditEntity.SelectEntity(false)) .TraverseRelation("Address", JoinType.InnerJoin) .AddProjection(AuditEntity.Property("Number")) .GetResultList(); result.Count.Should().Be.EqualTo(3); var index0 = (object[])result[0]; ((Person)index0[0]).Id.Should().Be.EqualTo(vwOwnerId); index0[1].Should().Be.EqualTo(5); var index1 = (object[])result[1]; ((Person)index1[0]).Id.Should().Be.EqualTo(fordOwnerId); index1[1].Should().Be.EqualTo(5); var index2 = (object[])result[2]; ((Person)index2[0]).Id.Should().Be.EqualTo(toyotaOwnerId); index2[1].Should().Be.EqualTo(20); }
public void ShouldDoProjectionOnTraversedPropertyDistinct() { AuditReader().CreateQuery().ForEntitiesAtRevision(typeof(Car), 2) .TraverseRelation("Owner", JoinType.InnerJoin) .TraverseRelation("Address", JoinType.InnerJoin) .AddProjection(AuditEntity.SelectEntity(true)) .AddOrder(AuditEntity.Property("Number").Asc()) .GetResultList <Address>().Select(x => x.Id) .Should().Have.SameSequenceAs(addressId1, addressId2); }