Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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()));
            }
        }
Beispiel #4
0
        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);
                }
            }
        }