protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); var mapper = new Npgsql.NameTranslation.NpgsqlSnakeCaseNameTranslator(); foreach (var entity in builder.Model.GetEntityTypes()) { entity.Relational().TableName = mapper.TranslateTypeName(entity.Relational().TableName); foreach (var property in entity.GetProperties()) { property.Relational().ColumnName = mapper.TranslateMemberName(property.Name); } foreach (var key in entity.GetKeys()) { key.Relational().Name = mapper.TranslateMemberName(key.Relational().Name); } foreach (var key in entity.GetForeignKeys()) { key.Relational().Name = mapper.TranslateMemberName(key.Relational().Name); } foreach (var index in entity.GetIndexes()) { index.Relational().Name = mapper.TranslateMemberName(index.Relational().Name); } } }
/// <summary> /// Translates all table and column names to snake case to better fit PostgreSQL conventions /// </summary> /// <param name="builder">The ModelBuilder</param> public static void UsePostgresCasing(this ModelBuilder builder) { var mapper = new Npgsql.NameTranslation.NpgsqlSnakeCaseNameTranslator(); foreach (var entity in builder.Model.GetEntityTypes()) { // modify column names foreach (var property in entity.GetProperties()) { property.Relational().ColumnName = mapper.TranslateMemberName(property.Relational().ColumnName); } // modify table name entity.Relational().TableName = mapper.TranslateMemberName(entity.Relational().TableName); } }
/// <summary> /// Translates all table and column names to snake case to better fit PostgreSQL conventions /// </summary> /// <param name="builder">The ModelBuilder</param> public static void UsePostgresCasing(this ModelBuilder builder) { var mapper = new Npgsql.NameTranslation.NpgsqlSnakeCaseNameTranslator(); foreach (var entity in builder.Model.GetEntityTypes()) { var schema = entity.GetSchema(); var tableName = entity.GetTableName(); var storeObjectIdentifier = StoreObjectIdentifier.Table(tableName, schema); // modify column names foreach (var property in entity.GetProperties()) { property.SetColumnName(mapper.TranslateMemberName(property.GetColumnName(storeObjectIdentifier))); } // modify table name entity.SetTableName(mapper.TranslateMemberName(entity.GetTableName())); } }
protected override void OnModelCreating(ModelBuilder modelBuilder) { // var converter = new ValueConverter<string, Guid>( // v => new Guid(v), // v => v.ToString()); // // var converterGuidToString = new ValueConverter<Guid, string>( // v => v.ToString(), // v => new Guid(v)); modelBuilder.Entity <User> (entity => { entity.Property(e => e.Id).IsRequired( ); entity.Property(e => e.Password).IsRequired( ).HasMaxLength(100); entity.Property(e => e.Role).IsRequired( ); entity.Property(e => e.Username).HasMaxLength(500); entity.Property(e => e.IsDeleted).HasDefaultValue(0).IsRequired( ); }); modelBuilder.Entity <UserProfile> (entity => { entity.Property(e => e.Id).IsRequired( ); entity.Property(e => e.Address).HasMaxLength(500); entity.Property(e => e.Email).HasMaxLength(200); entity.Property(e => e.UserId); entity.Property(e => e.Phone).HasMaxLength(32); }); modelBuilder.Entity <Book> (entity => { entity.Property(e => e.Id).IsRequired( ); entity.Property(e => e.Author).HasMaxLength(500); entity.Property(e => e.Price); entity.Property(e => e.Title).HasMaxLength(1024); }); modelBuilder.Entity <BookSold> (entity => { entity.Property(e => e.Id).IsRequired( ); entity.Property(e => e.Author).HasMaxLength(500); entity.Property(e => e.Price); entity.Property(e => e.Title).HasMaxLength(1024); entity.Property(e => e.UserId).IsRequired( ); entity.Property(e => e.SoldDate).IsRequired( ); }); var mapper = new Npgsql.NameTranslation.NpgsqlSnakeCaseNameTranslator( ); foreach (var entity in modelBuilder.Model.GetEntityTypes( )) { // Replace table names entity.Relational( ).TableName = mapper.TranslateMemberName(entity.Relational( ).TableName); // Replace column names foreach (var property in entity.GetProperties( )) { property.Relational( ).ColumnName = mapper.TranslateMemberName(property.Relational( ).ColumnName); } foreach (var key in entity.GetKeys( )) { key.Relational( ).Name = mapper.TranslateMemberName(key.Relational( ).Name); } foreach (var key in entity.GetForeignKeys( )) { key.Relational( ).Name = mapper.TranslateMemberName(key.Relational( ).Name); } foreach (var index in entity.GetIndexes( )) { index.Relational( ).Name = mapper.TranslateMemberName(index.Relational( ).Name); } } }