// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, DataContext context, UserManager <User> userManager) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseMiddleware <ApiDiagnosticsMiddleware>(); app.UseCors(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseAuthentication(); ModelBuilderExtensions.Seed(context, userManager); app.UseMvc(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, UserManager <ApplicationUser> userManager) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } ModelBuilderExtensions.SeedUsers(userManager); app.UseCors(c => c.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin()); app.UseHttpsRedirection(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/V1/swagger.json", "Values V1"); }); }
/// <summary> /// returns list of tranformers /// </summary> /// <param name="context"></param> /// <returns><List<Transformer></returns> public static Task <List <Transformer> > getTransformers(ITransformerDBContext context) { return(Task.Run(() => context .TransformerAllegiances .ToList <TransformerAllegiance>() .Select((transformerAllegiance, index) => Enumerable .Range(1, 5) .Select(item => new Transformer { AllegianceId = transformerAllegiance.TransformerAllegianceId , Name = $"{transformerAllegiance.AllegianceName} - {ModelBuilderExtensions.NumberToWords(item)}" , Strength = ModelBuilderExtensions.getRandomNumber(1, 10) , Intelligence = ModelBuilderExtensions.getRandomNumber(1, 10) , Speed = ModelBuilderExtensions.getRandomNumber(1, 10) , Endurance = ModelBuilderExtensions.getRandomNumber(1, 10) , Rank = ModelBuilderExtensions.getRandomNumber(1, 10) , Courage = ModelBuilderExtensions.getRandomNumber(1, 10) , Firepower = ModelBuilderExtensions.getRandomNumber(1, 10) , Skill = ModelBuilderExtensions.getRandomNumber(1, 10) } ) .ToList <Transformer>() ) .SelectMany(items => items) .ToList <Transformer>() )); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); new GameConfig(modelBuilder.Entity <Game>()); ///seed ModelBuilderExtensions.Seed(modelBuilder); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ModelBuilderExtensions.PluralizingTableNameConvention(modelBuilder); modelBuilder.ApplyConfiguration(new MunicipalityConfiguration()); modelBuilder.ApplyConfiguration(new MunicipalityTaxConfiguration()); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { //Seeden _modelBuilder = modelBuilder; base.OnModelCreating(_modelBuilder); ModelBuilderExtensions.modelBuilder = _modelBuilder; ModelBuilderExtensions.Seed(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, CardsAgainstHumanityAPIContext context) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); //2.2 Cors app.UseCors("MyAllowOrigins"); //vσσr de endpoints! app.UseAuthentication(); app.UseAuthorization(); //2.3 Swagger app.UseSwagger(); //enable swagger app.UseSwaggerUI(c => { // c.RoutePrefix = "swagger"; //path naar de UI pagina: /swagger/index.html c.SwaggerEndpoint("/swagger/v1/swagger.json", "CardsAgainstHumanity_API v1"); }); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapHub <LobbyHub>("/lobbyhub"); endpoints.MapHub <GameHub>("/gamehub"); }); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); //SEEDER met controler over reeds bestaande data //context via property dependancy ModelBuilderExtensions._configuration = Configuration; ModelBuilderExtensions._context = context; ModelBuilderExtensions._contentRootPath = env.ContentRootPath.Replace("CardsAgainstHumanity.API", "CardsAgainstHumanity.Models"); ModelBuilderExtensions.SeedFromFile(); //Pas hier Hostenv beschikbaar (na Context building) }
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration, IHostEnvironment environment) { base.ConfigureServices(services, configuration, environment); services.AddEntityFrameworkInMemoryDatabase(); services.AddDbContext <TDbContext>((p, options) => { options.ConfigureWarnings(w => w.Ignore(InMemoryEventId.TransactionIgnoredWarning)) .UseInMemoryDatabase(Config.InMemoryDatabaseName).UseInternalServiceProvider(p); }); ModelBuilderExtensions.RequireArrayConversion(); }
public void NullArgTests() { var services = new ServiceCollection(); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(null)); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultWebHookWorkItemProcessor(null))); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultValidator(null))); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultDataProtection(null, c => { }))); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultDataProtection(c => { }, null))); Assert.Throws <ArgumentNullException>(() => services.AddHarpoon(b => b.UseDefaultEFWebHookWorkItemProcessor <TestContext1>(null))); Assert.Throws <ArgumentNullException>(() => ModelBuilderExtensions.AddWebHookDefaultMapping(null)); Assert.Throws <ArgumentNullException>(() => ModelBuilderExtensions.AddWebHookFilterDefaultMapping(null)); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataContext dataContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); ModelBuilderExtensions.Seed(dataContext); } app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { Type[] types = typeof(EntityTypeConfiguration <>).GetTypeInfo().Assembly.GetTypes(); IEnumerable <Type> typesToRegister = types .Where(type => !string.IsNullOrEmpty(type.Namespace) && type.GetTypeInfo().BaseType != null && type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType&& type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration <>)); foreach (var type in typesToRegister) { dynamic configurationInstance = Activator.CreateInstance(type); ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance); } base.OnModelCreating(modelBuilder); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity <IdentityUser>().ToTable("IdentityUsers"); modelBuilder.Entity <Korpa>().ToTable("Korpa"); modelBuilder.Entity <KorpaInfo>().ToTable("KorpaInfo"); modelBuilder.Entity <Narudzba>().ToTable("Narudzba"); modelBuilder.Entity <Obavijest>().ToTable("Obavijest"); modelBuilder.Entity <ChatObavijest>().ToTable("ChatObavijest"); modelBuilder.Entity <NarudzbeObavijest>().ToTable("NarudzbeObavijest"); modelBuilder.Entity <Recenzija>().ToTable("Recenzija"); modelBuilder.Ignore <StanjeNarudzbe>(); modelBuilder.Entity <Tip>().ToTable("Tip"); modelBuilder.Ignore <Tipovi>(); //Database.ExecuteSqlCommand("SET IDENTITY_INSERT Artikal ON"); modelBuilder.Entity <Artikal>().ToTable("Artikal"); ModelBuilderExtensions.PopuniBazu(modelBuilder); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { _modelBuilder = modelBuilder; base.OnModelCreating(_modelBuilder); //modelBuilder.Entity<MovieRoom>().HasKey(mr => new { mr.MovieID, mr.RoomID}); //default veel op veel is cascade delete! foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys())) { relationship.DeleteBehavior = DeleteBehavior.Restrict; } ModelBuilderExtensions.modelBuilder = _modelBuilder; ModelBuilderExtensions.Seed(); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity <Invoice>() .HasMany(p => p.InvoiceDetails) .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Language>().HasIndex(x => x.Code).IsUnique(); modelBuilder.Entity <Language>().HasKey(x => x.Code).HasName("Code"); modelBuilder.Entity <Product>() .HasMany(p => p.Taxes) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Product>() .HasMany(p => p.ProductUnits) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Product>() .HasMany(p => p.BaseCompositeProducts) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <User>().Property(x => x.UserId).HasDefaultValueSql("NEWID()"); modelBuilder.Entity <LanguageKey>().HasKey(o => new { o.LanguageCode, o.Key }); foreach (var property in modelBuilder.Model.GetEntityTypes() .SelectMany(t => t.GetProperties()) .Where(p => p.ClrType == typeof(decimal))) { property.SetColumnType("decimal(18, 2)"); } var cascadeFKs = modelBuilder.Model.GetEntityTypes().SelectMany(t => t.GetForeignKeys()) .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade); foreach (var fk in cascadeFKs) { fk.DeleteBehavior = DeleteBehavior.Restrict; } ModelBuilderExtensions.Seed(modelBuilder); base.OnModelCreating(modelBuilder); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { //3. Set Cascade as a default delete behaviour modelBuilder.OverrideDeleteBehavior(DeleteBehavior.Cascade); modelBuilder.SetGlobalMaxLength(200); modelBuilder.SetGlobalTablePrefix("tbl_"); Assembly assemblyWithConfig = Assembly.GetExecutingAssembly(); Assembly assemblyWithConfig2 = typeof(ApplicationDbContext).Assembly; Assembly assemblyWithConfigurations = GetType().Assembly; modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfigurations); modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig2); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly2(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromAssembly(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfig); modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig); // ApplyConfiguration calls must follow base.OnModelCreating() //modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3(); // Apply configurations in a different assembly - just reference a type in that assembly modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3(assemblyWithConfig2); // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.EntityTypes() .Configure(et => et.Relational().TableName = et.DisplayName()); // Put the table name on the primary key modelBuilder.Properties() .Where(x => x.Name == "Id") .Configure(p => p.Relational().ColumnName = p.DeclaringEntityType.Name + "Id"); // Mark timestamp columns as concurrency tokens modelBuilder.Properties() .Where(x => x.Name == "Timestamp") .Configure(p => p.IsConcurrencyToken = true); // equivalent of modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly()); // look at this answer: https://stackoverflow.com/a/43075152/3419825 // for the other conventions, we do a metadata model loop foreach (var entityType in modelBuilder.Model.GetEntityTypes()) { // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); entityType.Relational().TableName = entityType.DisplayName(); // equivalent of modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); // and modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); entityType.GetForeignKeys() .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade) .ToList() .ForEach(fk => fk.DeleteBehavior = DeleteBehavior.Restrict); } Type[] types = typeof(EntityTypeConfiguration<>).GetTypeInfo().Assembly.GetTypes(); IEnumerable<Type> typesToRegister = types .Where(type => !string.IsNullOrEmpty(type.Namespace) && type.GetTypeInfo().BaseType != null && type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType && type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>)); foreach (var type in typesToRegister) { dynamic configurationInstance = Activator.CreateInstance(type); ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance); } foreach (var entity in modelBuilder.Model.GetEntityTypes()) { modelBuilder.Entity(entity.Name).ToTable(entity.Name + "s"); } var entityTypes = myDomainAssembly.DefinedTypes .Where(ti => ti.IsClass && ti.IsPublic && !ti.IsAbstract && !ti.IsNested) foreach (var entityType in entityTypes) { modelBuilder.Entity(entityType).ToTable(entity.Name + "s"); } //For EF Core 3.0, use this to set the TableName property(because entity.Relational() no longer exist): foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes()) { entity.SetTableName(entity.DisplayName()); } modelBuilder.RemovePluralizingTableNameConvention(); var people = this.DbSet<Person>().ToList(); var s1 = "Accessories".Singularize(); //produces "Accessory" var s2 = "XMLDetails".Singularize(); //produces "XMLDetail" }
protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity <Invoice>() .HasMany(p => p.InvoiceLeads) .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <InvoiceLead>() .HasMany(p => p.LeadDetails) .WithOne(d => d.Lead).OnDelete(DeleteBehavior.NoAction); modelBuilder.Entity <Invoice>() .HasMany(p => p.InvoiceDetails) .WithOne(d => d.Invoice).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <InvoiceDetail>() .HasOne(p => p.Invoice) .WithMany(d => d.InvoiceDetails).OnDelete(DeleteBehavior.NoAction); modelBuilder.Entity <Section>() .HasMany(p => p.Operations) .WithOne(d => d.Section).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Role>() .HasMany(p => p.SectionOperations) .WithOne(d => d.Role).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Language>().HasIndex(x => x.Code).IsUnique(); modelBuilder.Entity <Language>().HasKey(x => x.Code).HasName("Code"); modelBuilder.Entity <Product>() .HasMany(p => p.Taxes) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <BranchOffice>() .HasMany(x => x.Warehouses) .WithOne(x => x.BranchOffice) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <CashRegisterOpening>() .HasMany(x => x.Details) .WithOne(x => x.CashRegisterOpening) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <CashRegisterOpeningDetail>() .HasOne(x => x.CashRegisterOpening) .WithMany(x => x.Details) .OnDelete(DeleteBehavior.NoAction); modelBuilder.Entity <BranchOffice>() .HasMany(x => x.CashRegisters) .WithOne(x => x.BranchOffice) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <BranchOffice>() .HasMany(x => x.Users) .WithOne(x => x.BranchOffice) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <PaymentType>() .HasMany(x => x.ExpensesPayments) .WithOne(x => x.PaymentType) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <PaymentType>() .HasMany(x => x.Expenses) .WithOne(x => x.PaymentType) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <PaymentType>() .HasMany(x => x.InvoicesPayments) .WithOne(x => x.PaymentType) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <User>() .HasMany(x => x.CashRegisterOpeningClosings) .WithOne(x => x.User) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <CompositeProduct>() .HasOne(x => x.UnitProductEquivalence) .WithMany(y => y.CompositeProducts) .OnDelete(DeleteBehavior.SetNull); modelBuilder.Entity <Expense>() .HasOne(x => x.PaymentType) .WithMany(y => y.Expenses) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <ExpensesPayment>() .HasOne(x => x.PaymentType) .WithMany(y => y.ExpensesPayments) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Payment>() .HasOne(x => x.PaymentType) .WithMany(y => y.InvoicesPayments) .OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Warehouse>() .HasOne(x => x.BranchOffice) .WithMany(x => x.Warehouses); modelBuilder.Entity <SectionOperation>() .HasOne(x => x.Section) .WithMany(x => x.Operations) .OnDelete(DeleteBehavior.NoAction); modelBuilder.Entity <SectionOperation>() .HasOne(x => x.Operation) .WithMany(x => x.Sections) .OnDelete(DeleteBehavior.NoAction); modelBuilder.Entity <Product>() .HasMany(p => p.ProductUnits) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Product>() .HasMany(p => p.BaseCompositeProducts) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Product>() .HasMany(p => p.Taxes) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Product>() .HasMany(p => p.SuppliersCosts) .WithOne(d => d.Product).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Supplier>() .HasMany(p => p.ProductsCosts) .WithOne(d => d.Supplier).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <User>().Property(x => x.UserId).HasDefaultValueSql("NEWID()"); modelBuilder.Entity <LanguageKey>().HasKey(o => new { o.LanguageCode, o.Key }); modelBuilder.Entity <Section>().HasMany(x => x.Operations).WithOne(x => x.Section).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <Operation>().HasMany(x => x.Sections).WithOne(x => x.Operation).OnDelete(DeleteBehavior.Restrict); modelBuilder.Entity <SectionOperation>().HasOne(y => y.Operation).WithMany(y => y.Sections).OnDelete(DeleteBehavior.Cascade); modelBuilder.Entity <SectionOperation>().HasOne(y => y.Section).WithMany(x => x.Operations).OnDelete(DeleteBehavior.Cascade); foreach (var property in modelBuilder.Model.GetEntityTypes() .SelectMany(t => t.GetProperties()) .Where(p => p.ClrType == typeof(decimal))) { property.SetColumnType("decimal(18, 2)"); } var cascadeFKs = modelBuilder.Model.GetEntityTypes().SelectMany(t => t.GetForeignKeys()) .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade); foreach (var fk in cascadeFKs) { fk.DeleteBehavior = DeleteBehavior.Restrict; } ModelBuilderExtensions.Seed(modelBuilder); base.OnModelCreating(modelBuilder); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ModelBuilderExtensions.PluralizingTableNameConvention(modelBuilder); #region EF Core Identity modelBuilder.Entity <IdentityUserClaim <int> >(entity => { entity.ToTable("UserRoles"); }); modelBuilder.Entity <IdentityUserClaim <int> >(entity => { entity.ToTable("UserClaims"); }); modelBuilder.Entity <IdentityUserLogin <int> >(entity => { entity.ToTable("UserLogins"); }); modelBuilder.Entity <IdentityRoleClaim <int> >(entity => { entity.ToTable("RoleClaims"); }); modelBuilder.Entity <IdentityUserToken <int> >(entity => { entity.ToTable("UserTokens"); entity.Property(o => o.LoginProvider).HasMaxLength(64); entity.Property(o => o.Name).HasMaxLength(255); }); modelBuilder.Entity <User>(entity => { entity.Property(r => r.NormalizedUserName).HasMaxLength(255); }); modelBuilder.Entity <IdentityUserRole <int> >(entity => { entity.ToTable("UserRoles"); }); modelBuilder.Entity <Domain.Identities.IdentityRole>(entity => { entity.Property(r => r.NormalizedName).HasMaxLength(255); }); modelBuilder.Entity <User>(entity => { entity.Property(r => r.NormalizedUserName).HasMaxLength(255); }); modelBuilder.Entity <IdentityUserLogin <int> >(entity => { entity.Property(r => r.LoginProvider).HasMaxLength(64); entity.Property(r => r.ProviderKey).HasMaxLength(64); }); #endregion modelBuilder.ApplyConfiguration(new AngularComponentConfiguration()); modelBuilder.ApplyConfiguration(new BasketConfiguration()); modelBuilder.ApplyConfiguration(new BasketItemConfiguration()); modelBuilder.ApplyConfiguration(new CategoryCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new CategoryCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new CategoryConfiguration()); modelBuilder.ApplyConfiguration(new CategoryTypeConfiguration()); modelBuilder.ApplyConfiguration(new CharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new ImageCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new ImageCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new ImageConfiguration()); modelBuilder.ApplyConfiguration(new ImageSizeTypeConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldsetCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldsetCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new InputFieldsetConfiguration()); modelBuilder.ApplyConfiguration(new InputFormConfiguration()); modelBuilder.ApplyConfiguration(new InputFormOptionConfiguration()); modelBuilder.ApplyConfiguration(new LanguageConfiguration()); modelBuilder.ApplyConfiguration(new LocaleLanguageResourceConfiguration()); modelBuilder.ApplyConfiguration(new OrderCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new OrderCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new OrderConfiguration()); modelBuilder.ApplyConfiguration(new OrderStatusConfiguration()); modelBuilder.ApplyConfiguration(new PaymentMethodConfiguration()); modelBuilder.ApplyConfiguration(new PaymentMethodTypeConfiguration()); modelBuilder.ApplyConfiguration(new PhraseConfiguration()); modelBuilder.ApplyConfiguration(new ProductCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new ProductCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new ProductConfiguration()); modelBuilder.ApplyConfiguration(new ProductDetailCharacteristicConfiguration()); modelBuilder.ApplyConfiguration(new ProductDetailCharacteristicTranslationConfiguration()); modelBuilder.ApplyConfiguration(new ProductDetailConfiguration()); modelBuilder.ApplyConfiguration(new ProductDetailTypeConfiguration()); modelBuilder.ApplyConfiguration(new ProductRatingConfiguration()); modelBuilder.ApplyConfiguration(new ProductReviewConfiguration()); modelBuilder.ApplyConfiguration(new ProductSpecificationAttributeConfiguration()); modelBuilder.ApplyConfiguration(new ProductSpecificationAttributeOptionConfiguration()); modelBuilder.ApplyConfiguration(new RouteConfiguration()); modelBuilder.ApplyConfiguration(new ShippingMethodConfiguration()); modelBuilder.ApplyConfiguration(new SystemSettingConfiguration()); modelBuilder.ApplyConfiguration(new UserConfiguration()); modelBuilder.ApplyConfiguration(new VoucherConfiguration()); }
public Task <string> WebsiteDetailsList() => JsonSerialize(ModelBuilderExtensions.getWebsiteDetails(_context));
protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ModelBuilderExtensions.AddContentSearchIndex(modelBuilder); }
private ContentBlock CreateBlock(string type) { return(ModelBuilderExtensions.CreateBlock(type)); }
private void AssertTableName(string name, string expected, string[] ignoredNamespaces) { var result = ModelBuilderExtensions.GetTableNameWithNamespace(name, ignoredNamespaces); Assert.AreEqual(expected, result); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes()) { if (entity.Name.Contains("AspNet")) { string tableSchema = entity.GetSchema(); entity.SetSchema(tableSchema + "_SinjulMSBH"); string tableName = entity.GetTableName().Replace("AspNet", "SinjulMSBH_"); entity.SetTableName(tableName); } } //if (entity.Name == "Simple.Models.Entities.Entity01") //{ // entity.SetDbSetName("Entity01"); // var a6 = entity.GetTableName(); // entity.SetTableName(a6 + "s"); // var a4 = entity.FindProperty("Entity1"); // entity.SetPrimaryKey(a4); // //var a1 = entity.AddProperty("Test"); // var a2 = entity.FindPrimaryKey(); // var a3 = entity.FindProperties(new string[] { "Test,IsDeleted,InsertDate,Entity02Id" }); // var a44 = entity.FindProperty("InsertDate"); // var a7 = entity.GetType(); // var a8 = entity.PropertyCount(); // var a9 = entity.RelationshipPropertyCount(); // entity.SetAnnotation("DisplayName", "TestAlaki"); // var a5 = entity.GetAnnotation("DisplayName"); // //entity.SetQueryFilter(c => c.Name == "EntityTwo"); // //entity.Relational().TableName = entity.Relational().TableName.Replace("AspNet", ""); //} //} //3. Set Cascade as a default delete behaviour modelBuilder.OverrideDeleteBehavior(DeleteBehavior.Cascade); modelBuilder.SetGlobalMaxLength(200); modelBuilder.SetGlobalTablePrefix("tbl_"); Assembly assemblyWithConfig = Assembly.GetExecutingAssembly(); Assembly assemblyWithConfig2 = typeof(ApplicationDbContext).Assembly; Assembly assemblyWithConfigurations = GetType().Assembly; modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfigurations); modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig2); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly2(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly3(assemblyWithConfig2); modelBuilder.ApplyAllConfigurationsFromAssembly(assemblyWithConfigurations); modelBuilder.ApplyAllConfigurationsFromCurrentAssembly(assemblyWithConfig); modelBuilder.ApplyConfigurationsFromAssembly(assemblyWithConfig); // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //modelBuilder.EntityTypes().Configure(et => et.Relational().TableName = et.DisplayName()); modelBuilder.EntityTypes().Configure(et => et.SetTableName(et.DisplayName())); // Put the table name on the primary key //modelBuilder.Properties().Where(x => x.Name == "Id").Configure(p => p.Relational().ColumnName = p.DeclaringEntityType.Name + "Id"); modelBuilder.Properties().Where(x => x.Name == "Id").Configure(p => p.SetColumnName(p.DeclaringEntityType.Name + "Id")); // Mark timestamp columns as concurrency tokens modelBuilder.Properties().Where(x => x.Name == "Timestamp").Configure(p => p.IsConcurrencyToken = true); // equivalent of modelBuilder.Conventions.AddFromAssembly(Assembly.GetExecutingAssembly()); // look at this answer: https://stackoverflow.com/a/43075152/3419825 //For EF Core 3.0, use this to set the TableName property(because entity.Relational() no longer exist): // for the other conventions, we do a metadata model loop foreach (IMutableEntityType entityType in modelBuilder.Model.GetEntityTypes()) { // equivalent of modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //entityType.Relational().TableName = entityType.DisplayName(); entityType.SetTableName(entityType.DisplayName()); // equivalent of modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); // and modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); entityType.GetForeignKeys() .Where(fk => !fk.IsOwnership && fk.DeleteBehavior == DeleteBehavior.Cascade) .ToList() .ForEach(fk => fk.DeleteBehavior = DeleteBehavior.Restrict); } Type[] types = typeof(EntityTypeConfiguration <>).GetTypeInfo().Assembly.GetTypes(); IEnumerable <Type> typesToRegister = types .Where(type => !string.IsNullOrEmpty(type.Namespace) && type.GetTypeInfo().BaseType != null && type.GetTypeInfo().BaseType.GetTypeInfo().IsGenericType&& type.GetTypeInfo().BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration <>)); foreach (var type in typesToRegister) { dynamic configurationInstance = Activator.CreateInstance(type); ModelBuilderExtensions.AddConfiguration(modelBuilder, configurationInstance); } foreach (var entity in modelBuilder.Model.GetEntityTypes()) { modelBuilder.Entity(entity.Name).ToTable(entity.Name + "s"); } var entityTypes = Assembly.GetExecutingAssembly().DefinedTypes .Where(ti => ti.IsClass && ti.IsPublic && !ti.IsAbstract && !ti.IsNested); foreach (var entityType in entityTypes) { modelBuilder.Entity(entityType).ToTable(entityType.Name + "s"); } modelBuilder.RemovePluralizingTableNameConvention(); modelBuilder.Entity <Person>().Property(x => x.MyDecimal).HasColumnType("decimal(14, 2)"); modelBuilder.DecimalPrecision(); modelBuilder.SetSQLDefaultValues(); modelBuilder.AddConfiguration(new BlogMap()); modelBuilder.AddEntityConfigurationsFromAssembly(GetType().Assembly); modelBuilder.AddSingularizingTableName(); modelBuilder.AddPluralizingTableName(); modelBuilder.AddSqlDefaultValue("ProprtyName", typeof(string), "SqlDefaultValue"); modelBuilder.AddOnDeleteBehavior(); modelBuilder.ApplyConfigFromAssembly(assemblyWithConfig); var baseEntityAssembly = typeof(IBaseEntity).Assembly; modelBuilder.ApplyEntityFromAssembly <IBaseEntity>(baseEntityAssembly); var people = this.DbSet <Person>().ToList(); var s1 = "Accessories".Singularize(); //produces "Accessory" var s2 = "XMLDetails".Singularize(); //produces "XMLDetail" }
public Task <string> WebsiteList() => JsonSerialize(ModelBuilderExtensions.getWebsites());