How to implement the field decimal(5,2) in EntityFrameworkCore 1.0 rc2?

前端 未结 3 1136
我寻月下人不归
我寻月下人不归 2020-12-29 02:29

How to implement the field decimal(5,2) in EntityFrameworkCore 1.0 rc2 ?

HasPrecision seems to be not available anymore?

相关标签:
3条回答
  • 2020-12-29 03:14

    I'm seeing some examples like this:

     entityBuilder.Property(r => r.TotalScore)
                .HasColumnType("decimal(5,2)")
                .IsRequired(true);
    

    and the code to support this is here, so hopefully this is supported in the version you're using:

    https://github.com/aspnet/EntityFramework/blob/f416dd9a71a5a6a69715b4ba40a37e6f9da751ef/src/Microsoft.EntityFrameworkCore.Relational/Metadata/Internal/RelationalPropertyBuilderAnnotations.cs

    0 讨论(0)
  • 2020-12-29 03:14

    You can add extensions for that like this:

    public static class SqlServerModelBuilderExtensions
    {
        public static PropertyBuilder<decimal?> HasPrecision(this PropertyBuilder<decimal?> builder, int precision, int scale)
        {
            return builder.HasColumnType($"decimal({precision},{scale})");
        }
    
        public static PropertyBuilder<decimal> HasPrecision(this PropertyBuilder<decimal> builder, int precision, int scale)
        {
            return builder.HasColumnType($"decimal({precision},{scale})");
        }
    }
    
    0 讨论(0)
  • 2020-12-29 03:17

    JFYI, if somedoby is stil comming to this question (like I did)

    In the current version of EF Core (2.2) there is also the Data Annotation way to do this:

    public class SomeEFModelClass
    {
        [Column(TypeName = "decimal(5,2)")]
        public decimal TotalScore{ get; set; }
    }
    

    Link to docs: https://docs.microsoft.com/en-us/ef/core/modeling/relational/data-types

    0 讨论(0)
提交回复
热议问题