public void FindAll_With_Include_And_Predicate_In_Specs_LazyLoads_Email()
        {
            dbContext.Configuration.LazyLoadingEnabled = true;
            dbContext.Database.Log = sql =>
            {
                if (sql.Contains("SELECT"))
                {
                    queries.Add(sql);
                }
            };
            var repository = new MyEfRepository(dbContext);

            var findAllBySpec = new Specification <Contact>(obj => obj.ContactId == "1")
                                .And(obj => obj.EmailAddresses.Any(m => m.Email == "*****@*****.**"));

            var specification = new Specification <Contact>(obj => obj.Name == "Test User 1");

            findAllBySpec.FetchStrategy = new GenericFetchStrategy <Contact>();
            findAllBySpec.FetchStrategy
            .Include(obj => obj.EmailAddresses);

            // NOTE: This line will erase my FetchStrategy from above
            if (null != specification)
            {
                findAllBySpec = findAllBySpec.And(specification);
            }

            var contact = repository.FindAll(findAllBySpec).First();

            contact.Name.ShouldEqual("Test User 1");
            queries.Count().ShouldEqual(1); // first query is count for total records
            contact.EmailAddresses.First().Email.ShouldEqual("*****@*****.**");
            queries.Count().ShouldEqual(1);

            repository.FindAll(findAllBySpec).Count().ShouldEqual(1);
        }