public static Task SeedData(this WebsitesContext context) { return(Task.Run(() => { if (context.Database.IsSqlServer()) { context.Database.Migrate(); //For MSSql } context.Database.EnsureCreated(); //if (context.Websites.Any()) //{ // //To truncate tables and reseed the identities -- only required few times and not always // context.Websites.RemoveRange(context.Websites); // context.SaveChanges(); // if (context.Database.IsSqlServer()) // { // context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('Websites', RESEED, 0)"); // context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('WebsiteDetails', RESEED, 0)"); // } //} if (!context.Websites.Any()) { context.Websites.AddRange(getWebsites().GetAwaiter().GetResult()); context.SaveChanges(); context.WebsiteDetails.AddRange(getWebsiteDetails(context).GetAwaiter().GetResult()); context.SaveChanges(); } })); }
public static Task <List <WebsiteDetail> > getWebsiteDetails(WebsitesContext context) => Task.Run(() => context.Websites .ToList <Website>() .Select((website, index) => Enumerable.Range(-15, 30) .Select((number, enuIndex) => new WebsiteDetail { WebsiteId = website.WebsiteId, VisitDate = DateTime.Now.AddDays(number), TotalVisits = (index + 1) * (enuIndex + 1) * 100, Website = website }) .ToList <WebsiteDetail>() ) .SelectMany(websiteDetails => websiteDetails) .ToList <WebsiteDetail>() );