public async Task AssignCategoryToProjectTypeAsync(string category, string projectType) { var categoryEntity = await this.MainDbContext.Categories .Where(x => x.Name == category) .SingleAsync() ; var projectTypeEntity = await this.MainDbContext.ProjectTypes .Where(x => x.Name == projectType) .SingleOrDefaultAsync() ; var projectTypeEntityNew = new ProjectType { Name = projectType }; var projectTypeEntityToBeMapped = projectTypeEntity ?? projectTypeEntityNew; var newCategoryToProjectTypeMapping = new CategoryToProjectTypeMapping { Category = categoryEntity, ProjectType = projectTypeEntityToBeMapped }; this.MainDbContext.CategoryToProjectTypeMappings.Add(newCategoryToProjectTypeMapping); await this.MainDbContext.SaveChangesAsync(); }
static void AddEntityToDatabaseTables01(MainDbContext mainDbContext) { var categoryStarbucksDrinks = new Category { Name = "Starbucks Drinks" }; var projectNameFlatWhite = new ProjectName { Name = "Flat White" }; var projectTypeExperiments = new ProjectType { Name = "Experiments" }; mainDbContext.Categories.Add(categoryStarbucksDrinks); mainDbContext.ProjectNames.Add(projectNameFlatWhite); mainDbContext.ProjectTypes.Add(projectTypeExperiments); mainDbContext.SaveChanges(); var categoryToProjectTypeMapping_StarbucksDrinksToExperiments = new CategoryToProjectTypeMapping { CategoryID = categoryStarbucksDrinks.ID, ProjectTypeID = projectTypeExperiments.ID, StartDate = DateTime.Now, EndDate = DateTime.MaxValue }; var projectNameToCategoryMapping_FlatWhiteToStarbucksDrinks = new ProjectNameToCategoryMapping { ProjectNameID = projectNameFlatWhite.ID, CategoryID = categoryStarbucksDrinks.ID, StartDate = DateTime.Now, EndDate = DateTime.MaxValue, }; mainDbContext.CategoryToProjectTypeMappings.Add(categoryToProjectTypeMapping_StarbucksDrinksToExperiments); mainDbContext.ProjectNameToCategoryMappings.Add(projectNameToCategoryMapping_FlatWhiteToStarbucksDrinks); mainDbContext.SaveChanges(); }