public async Task ShouldFilterByContentItemIndexWhenSqlTablePrefixIsUsed()
        {
            await _initializeTask;

            _prefixedStore.RegisterIndexes <AnimalIndexProvider>();

            using (var services = new FakeServiceCollection())
            {
                services.Populate(new ServiceCollection());
                services.Services.AddScoped(x => _prefixedStore.CreateSession());

                var shellSettings = new ShellSettings();
                shellSettings["TablePrefix"] = _prefix;

                services.Services.AddScoped(x => shellSettings);
                services.Build();

                var returnType = new ListGraphType <StringGraphType>();
                returnType.ResolvedType = new StringGraphType()
                {
                    Name = "Animal"
                };

                var animalWhereInput = new AnimalPartWhereInput();
                var inputs           = new FieldType {
                    Name = "Inputs", Arguments = new QueryArguments {
                        new QueryArgument <WhereInputObjectGraphType> {
                            Name = "where", Description = "filters the animals", ResolvedType = animalWhereInput
                        }
                    }
                };

                var context = new ResolveFieldContext
                {
                    Arguments   = new Dictionary <string, object>(),
                    UserContext = new GraphQLContext
                    {
                        ServiceProvider = services
                    },
                    ReturnType      = returnType,
                    FieldDefinition = inputs
                };

                var ci = new ContentItem {
                    ContentType = "Animal", Published = true, ContentItemId = "1", ContentItemVersionId = "1"
                };
                ci.Weld(new AnimalPart {
                    Name = "doug"
                });

                var session = ((GraphQLContext)context.UserContext).ServiceProvider.GetService <ISession>();
                session.Save(ci);
                await session.CommitAsync();

                var type = new ContentItemsFieldType("Animal", new Schema(), Options.Create(new GraphQLContentOptions()), Options.Create(new GraphQLSettings {
                    DefaultNumberOfResults = 10
                }));

                context.Arguments["where"] = JObject.Parse("{ contentItemId: \"1\" }");
                var dogs = await((LockedAsyncFieldResolver <IEnumerable <ContentItem> >)type.Resolver).Resolve(context);

                Assert.Single(dogs);
                Assert.Equal("doug", dogs.First().As <AnimalPart>().Name);
            }
        }