Skip to content

Commit 0bbf683

Browse files
authored
Parse float/double/decimal in scaffolding (#3541)
Closes #3540
1 parent 4e8cbba commit 0bbf683

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/EFCore.PG/Scaffolding/Internal/NpgsqlDatabaseModelFactory.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ ORDER BY attnum
400400
else
401401
{
402402
column.DefaultValueSql = defaultValueSql;
403-
column.DefaultValue = ParseClrDefault(storeType, defaultValueSql);
403+
column.DefaultValue = ParseClrDefault(systemTypeName, defaultValueSql);
404404
AdjustDefaults(column, systemTypeName);
405405
}
406406

@@ -514,7 +514,7 @@ ORDER BY attnum
514514

515515
while (defaultValueSql.StartsWith('(') && defaultValueSql.EndsWith(')'))
516516
{
517-
defaultValueSql = (defaultValueSql.Substring(1, defaultValueSql.Length - 2)).Trim();
517+
defaultValueSql = defaultValueSql.Substring(1, defaultValueSql.Length - 2).Trim();
518518
}
519519

520520
return dataTypeName switch
@@ -529,6 +529,10 @@ ORDER BY attnum
529529
"integer" or "int" or "int4" => int.TryParse(defaultValueSql, CultureInfo.InvariantCulture, out var @int) ? @int : null,
530530
"bigint" or "int8" => long.TryParse(defaultValueSql, CultureInfo.InvariantCulture, out var @long) ? @long : null,
531531

532+
"real" or "float4"=> float.TryParse(defaultValueSql, CultureInfo.InvariantCulture, out var @float) ? @float : null,
533+
"double precision" or "float8" => double.TryParse(defaultValueSql, CultureInfo.InvariantCulture, out var @double) ? @double : null,
534+
"numeric" or "decimal" => decimal.TryParse(defaultValueSql, CultureInfo.InvariantCulture, out var @decimal) ? @decimal : null,
535+
532536
_ => null
533537
};
534538
}

0 commit comments

Comments
 (0)