private static void GenerateData() { const int COUNT = 5000; Random rand = new Random(); List<User> users = new List<User>(); List<Car> cars = new List<Car>(); List<Employer> employers = new List<Employer>(); List<Address> addresses = new List<Address>(); for (int i = 1; i <= COUNT; i++) { var user = new User() { Id = i, Name = Faker.NameFaker.Name(), BirthDate = Faker.DateTimeFaker.BirthDay() }; var employer = new Employer() { Id = i, Name = Faker.CompanyFaker.Name(), EmployeeCount = Faker.NumberFaker.Number(10, 150000), Sector = Faker.EnumFaker.SelectFrom<Sector>() }; var address = new Address() { Id = i, Street = Faker.LocationFaker.Street(), City = Faker.LocationFaker.City(), State = Faker.LocationFaker.Country(), PostalCode = Faker.LocationFaker.PostCode() }; var car = new Car() { Id = i, MakeModel = Faker.EnumFaker.SelectFrom<MakeModel>(), Year = Faker.NumberFaker.Number(1990, 2016) }; users.Add(user); cars.Add(car); employers.Add(employer); addresses.Add(address); } foreach (var employer in employers) { employer.Address = addresses[rand.Next(COUNT)]; } foreach (var user in users) { for (int i = 0; i <= 5; i++) { var index = rand.Next(COUNT); if (!user.Cars.Contains(cars[index])) { user.Cars.Add(cars[index]); } } user.Address = addresses[rand.Next(COUNT)]; user.Employer = employers[rand.Next(COUNT)]; } Save(users, cars, employers, addresses); }
private static void SaveUser(User user, SqlConnection connection) { var cmd = new SqlCommand($"INSERT INTO dbo.[User] VALUES ({user.Id}, '{Sanitize(user.Name)}', '{Sanitize(user.BirthDate.ToShortDateString())}', {user.Address.Id}, {user.Employer.Id})", connection); cmd.ExecuteNonQuery(); foreach (var car in user.Cars) { cmd = new SqlCommand($"INSERT INTO dbo.UserCar VALUES({user.Id}, {car.Id})", connection); cmd.ExecuteNonQuery(); } }