Ejemplo n.º 1
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <Movie>().HasKey(m => m.Uri);
            modelBuilder.Entity <Planet>().HasKey(p => p.Uri);
            modelBuilder.Entity <MoviePlanet>().HasKey(mp =>
                                                       new
            {
                mp.MovieUri,
                mp.PlanetUri
            });

            var remoteMovies = new MovieApiRepository().GetAllMovies();

            modelBuilder.Entity <Movie>().HasData(remoteMovies.ToArray());
            foreach (var remoteMovie in remoteMovies)
            {
                remoteMovie.PlanetUris.ForEach(planet =>
                {
                    modelBuilder.Entity <MoviePlanet>().HasData(new MoviePlanet()
                    {
                        MovieUri  = remoteMovie.Uri,
                        PlanetUri = planet
                    });
                });
            }
            var remotePlanets = new PlanetApiRepository().GetAllPlanets();

            modelBuilder.Entity <Planet>().HasData(remotePlanets.ToArray());

            modelBuilder.Entity <Movie>().Ignore(movie => movie.PlanetUris);
            modelBuilder.Entity <Planet>().Ignore(planet => planet.MovieUris);
        }
Ejemplo n.º 2
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            // Define Primary Keys
            modelBuilder.Entity <Movie>().HasKey(movie => movie.Uri);
            modelBuilder.Entity <Planet>().HasKey(planet => planet.Uri);

            // Don't map lists of Uri, this is modeled in MoviePlanet entity
            modelBuilder.Entity <Movie>().Ignore(movie => movie.PlanetUris);
            modelBuilder.Entity <Planet>().Ignore(planet => planet.MovieUris);

            // Configure many to many
            modelBuilder.Entity <MoviePlanet>().HasKey(moviePlanet => new
            {
                moviePlanet.MovieUri, moviePlanet.PlanetUri
            });

            // Seed Data
            IList <Movie> remoteMovies = new MovieApiRepository().GetAllMovies();

            modelBuilder.Entity <Movie>().HasData(remoteMovies.ToArray());

            IList <Planet> remotePlanets = new PlanetApiRepository().GetAllPlanets();

            modelBuilder.Entity <Planet>().HasData(remotePlanets.ToArray());

            foreach (var movie in remoteMovies)
            {
                foreach (var planet in remotePlanets)
                {
                    // planet appears in movie
                    if (movie.PlanetUris.Contains(planet.Uri))
                    {
                        modelBuilder.Entity <MoviePlanet>().HasData(new MoviePlanet()
                        {
                            MovieUri  = movie.Uri,
                            PlanetUri = planet.Uri
                        });
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public void SetUp()
 {
     _repo = new PlanetApiRepository();
 }