public void VerifyEntitiesReferencedByIng1ToId3()
        {
            var rev1_related = AuditReader().CreateQuery()
                               .ForEntitiesAtRevision(typeof(SetRefIngEmbIdEntity), 1)
                               .Add(AuditEntity.RelatedId("Reference").Eq(id3))
                               .Add(AuditEntity.Id().Eq(id1))
                               .GetResultList();
            var rev2_related = AuditReader().CreateQuery()
                               .ForEntitiesAtRevision(typeof(SetRefIngEmbIdEntity), 2)
                               .Add(AuditEntity.RelatedId("Reference").Eq(id3))
                               .Add(AuditEntity.Id().Eq(id1))
                               .GetResultList();
            var rev3_related = AuditReader().CreateQuery()
                               .ForEntitiesAtRevision(typeof(SetRefIngEmbIdEntity), 3)
                               .Add(AuditEntity.RelatedId("Reference").Eq(id3))
                               .Add(AuditEntity.Id().Eq(id1))
                               .GetResultList();

            CollectionAssert.IsEmpty(rev1_related);
            CollectionAssert.AreEquivalent(new[] { new SetRefIngEmbIdEntity {
                                                       Id = id1, Data = "x"
                                                   } }, rev2_related);
            CollectionAssert.AreEquivalent(new[] { new SetRefIngEmbIdEntity {
                                                       Id = id1, Data = "x"
                                                   } }, rev3_related);
        }
 protected override object QueryForReferencedEntity(IAuditReaderImplementor versionsReader, EntityInfo referencedEntity, object primaryKey, long revision, bool removed)
 {
     return(versionsReader.CreateQuery().ForEntitiesAtRevision(referencedEntity.EntityClass, revision)
            .Add(AuditEntity.RelatedId(_owningReferencePropertyName).Eq(primaryKey))
            .GetSingleResult());
 }