It happens that we have trailing spaces in default values when scaffolding a database:
Sample table
CREATE TABLE "SCHEMA"."SAMPLE"
(
TEST1 NUMBER(1) DEFAULT 0 NOT NULL,
TIME_STAMP TIMESTAMP(6) WITH TIME ZONE DEFAULT current_timestamp NOT NULL,
TEST2 NUMBER(1) DEFAULT 1,
)
Scaffolded c# code
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Sample>(entity =>
{
entity.Property(e => e.Test2)
.IsRequired()
.HasPrecision(1)
.HasColumnName("CLEANED")
.HasDefaultValueSql("0 "); // Whitespace after default value
entity.Property(e => e.TimeStamp)
.HasColumnType("TIMESTAMP(6) WITH TIME ZONE")
.ValueGeneratedOnAdd()
.HasColumnName("TIME_STAMP")
.HasDefaultValueSql("current_timestamp "); // Whitespace after default value
entity.Property(e => e.Test1)
.HasPrecision(1)
.HasColumnName("TEST2")
.HasDefaultValueSql("1");
}
}
Only happens when the default value is followed by something else like " NOT NULL"
as it takes the default value including the trailing whitespace
