protected override Expression RewriteServerQueryExpression(Expression serverQueryExpression)
    {
        var temporalEntityTypes = new List <Type>
        {
            typeof(Animal),
            typeof(Plant),
            typeof(Country),
            typeof(Drink),
        };

        var rewriter = new TemporalPointInTimeQueryRewriter(Fixture.ChangesDate, temporalEntityTypes);

        return(rewriter.Visit(serverQueryExpression));
    }
    protected override Expression RewriteServerQueryExpression(Expression serverQueryExpression)
    {
        var temporalEntityTypes = new List <Type>
        {
            typeof(City),
            typeof(CogTag),
            typeof(Faction),
            typeof(LocustHorde),
            typeof(Gear),
            typeof(Officer),
            typeof(LocustLeader),
            typeof(LocustCommander),
            typeof(LocustHighCommand),
            typeof(Mission),
            typeof(Squad),
            typeof(SquadMission),
            typeof(Weapon),
        };

        var rewriter = new TemporalPointInTimeQueryRewriter(Fixture.ChangesDate, temporalEntityTypes);

        return(rewriter.Visit(serverQueryExpression));
    }