예제 #1
0
        public async Task <T> AddAsync(T entity)
        {
            await _dbContext.Set <T>().AddAsync(entity);

            await _dbContext.SaveChangesAsync();

            return(entity);
        }
        public static async Task SeedAsync(ParkingDbContext parkingDbContext, int?retry = 0)
        {
            int retryForAvailability = retry.Value;

            try
            {
                // TODO: Only run this if using a real database
                // context.Database.Migrate();

                if (!parkingDbContext.Parkings.Any())
                {
                    parkingDbContext.Parkings.AddRange(GetDefaultParkings());

                    await parkingDbContext.SaveChangesAsync();
                }

                if (!parkingDbContext.Cars.Any())
                {
                    parkingDbContext.Cars.AddRange(
                        GetDefaultCars());

                    await parkingDbContext.SaveChangesAsync();
                }

                if (!parkingDbContext.Routes.Any())
                {
                    parkingDbContext.Routes.AddRange(
                        GetDefaultRoute());

                    await parkingDbContext.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                if (retryForAvailability < 10)
                {
                    retryForAvailability++;

                    await SeedAsync(parkingDbContext, retryForAvailability);
                }
                throw;
            }
        }