Beispiel #1
0
        public void TableSplitting()
        {
            // Inserting data
            using (SakilaLiteTableSplittingContext context = new SakilaLiteTableSplittingContext())
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                context.Films.Add(new FilmLite
                {
                    FilmId      = 1,
                    Title       = "ACADEMY DINOSAUR",
                    Description = "A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies",
                    Details     = new FilmDetails
                    {
                        FilmId             = 1,
                        ReleaseYear        = 2006,
                        LanguageId         = 1,
                        OriginalLanguageId = null,
                        RentalDuration     = 6,
                        RentalRate         = 0.99m,
                        Length             = 86,
                        ReplacementCost    = 20.99m,
                        Rating             = "PG",
                        SpecialFeatures    = "Deleted Scenes,Behind the Scenes",
                        LastUpdate         = DateTime.Parse("2006-02-15 05:03:42")
                    }
                });
                context.Films.Add(new FilmLite
                {
                    FilmId      = 2,
                    Title       = "ACE GOLDFINGER",
                    Description = "A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China"
                });
                context.FilmDetails.Add(new FilmDetails
                {
                    FilmId             = 2,
                    ReleaseYear        = 2006,
                    LanguageId         = 1,
                    OriginalLanguageId = null,
                    RentalDuration     = 3,
                    RentalRate         = 4.99m,
                    Length             = 48,
                    ReplacementCost    = 12.99m,
                    Rating             = "G",
                    SpecialFeatures    = "Trailers,Deleted Scenes",
                    LastUpdate         = DateTime.Parse("2006-02-15 05:03:42")
                });

                context.SaveChanges();
            }

            // Validating data
            using (SakilaLiteTableSplittingContext context = new SakilaLiteTableSplittingContext())
            {
                var films = context.Films.Include(e => e.Details).ToList();

                Action <FilmLite, int, string, short> validate = (film, id, title, releaseYear) =>
                {
                    Assert.Equal(id, film.FilmId);
                    Assert.NotNull(film.Details);
                    Assert.NotNull(film.Details.Film);
                    Assert.Equal(id, film.Details.FilmId);
                    Assert.Equal(title, film.Title);
                    Assert.Equal(releaseYear, film.Details.ReleaseYear);
                };

                Assert.Collection(films,
                                  film => validate(film, 1, "ACADEMY DINOSAUR", 2006),
                                  film => validate(film, 2, "ACE GOLDFINGER", 2006)
                                  );
            }
        }
Beispiel #2
0
        public void TableSplitting()
        {
            // Inserting data
            using (SakilaLiteTableSplittingContext context = new SakilaLiteTableSplittingContext())
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                context.Films.Add(new FilmLite
                {
                    FilmId      = 1,
                    Title       = "ACADEMY DINOSAUR",
                    Description = "A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies",
                    Details     = new FilmDetails
                    {
                        FilmId             = 1,
                        ReleaseYear        = 2006,
                        LanguageId         = 1,
                        OriginalLanguageId = null,
                        RentalDuration     = 6,
                        RentalRate         = 0.99m,
                        Length             = 86,
                        ReplacementCost    = 20.99m,
                        Rating             = "PG",
                        SpecialFeatures    = "Deleted Scenes,Behind the Scenes",
                        LastUpdate         = DateTime.Parse("2006-02-15 05:03:42")
                    }
                });
                context.Films.Add(new FilmLite
                {
                    FilmId      = 2,
                    Title       = "ACE GOLDFINGER",
                    Description = "A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China"
                });
                context.FilmDetails.Add(new FilmDetails
                {
                    FilmId             = 2,
                    ReleaseYear        = 2006,
                    LanguageId         = 1,
                    OriginalLanguageId = null,
                    RentalDuration     = 3,
                    RentalRate         = 4.99m,
                    Length             = 48,
                    ReplacementCost    = 12.99m,
                    Rating             = "G",
                    SpecialFeatures    = "Trailers,Deleted Scenes",
                    LastUpdate         = DateTime.Parse("2006-02-15 05:03:42")
                });

                context.SaveChanges();
            }

            // Validating data
            using (SakilaLiteTableSplittingContext context = new SakilaLiteTableSplittingContext())
            {
                var films = context.Films.Include(e => e.Details).ToList();

                Assert.That(films.Where(a => a.FilmId == 1), Has.One.Items);
                Assert.That(films.Where(a => a.FilmId == 2), Has.One.Items);
                Assert.That(films.Select(c => c.Title), Has.Exactly(1).Matches <string>(Title => Title.Contains("ACADEMY DINOSAUR")));
                Assert.That(films.Select(c => c.Title), Has.Exactly(1).Matches <string>(Title => Title.Contains("ACE GOLDFINGER")));
                Assert.That(films.Where(a => a.Details.Film.Details.ReleaseYear == 2006), Has.Exactly(2).Items);
            }
        }