如何在decimal(5,2)
中实现字段EntityFrameworkCore 1.0 rc2
?
HasPrecision
似乎不再可用了?
答案 0 :(得分:27)
您可以为此添加扩展程序:
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})");
}
}
答案 1 :(得分:24)
我看到一些这样的例子:
entityBuilder.Property(r => r.TotalScore)
.HasColumnType("decimal(5,2)")
.IsRequired(true);
并且支持此功能的代码在这里,所以希望您使用的版本支持此功能:
答案 2 :(得分:6)
从 EF Core 5 开始,您可以使用它:
modelBuilder.Entity<Payment>().Property(b => b.Amount).HasPrecision(12, 4);
答案 3 :(得分:0)
JFYI,如果somedoby突然出现这个问题(就像我一样)
在当前版本的EF Core(2.2)中,还有执行此操作的数据注释方法:
public class SomeEFModelClass
{
[Column(TypeName = "decimal(5,2)")]
public decimal TotalScore{ get; set; }
}
链接到文档:https://docs.microsoft.com/en-us/ef/core/modeling/relational/data-types