如何在 EntityFrameworkCore 1.0 rc2 中实现字段 decimal(5,2)?
How to implement the field decimal(5,2) in EntityFrameworkCore 1.0 rc2?
如何在EntityFrameworkCore 1.0 rc2
中实现字段decimal(5,2)
?
HasPrecision
好像下架了?
我看到了一些这样的例子:
entityBuilder.Property(r => r.TotalScore)
.HasColumnType("decimal(5,2)")
.IsRequired(true);
支持此功能的代码在此处,因此希望您使用的版本支持此功能:
您可以像这样添加扩展:
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})");
}
}
仅供参考,如果有人还在回答这个问题(就像我一样)
在当前版本的 EF Core (2.2) 中,还有数据注释方法可以执行此操作:
public class SomeEFModelClass
{
[Column(TypeName = "decimal(5,2)")]
public decimal TotalScore{ get; set; }
}
Link 到文档:https://docs.microsoft.com/en-us/ef/core/modeling/relational/data-types
从 EF Core 5 开始,您可以使用这个:
modelBuilder.Entity<Payment>().Property(b => b.Amount).HasPrecision(5, 2);
如何在EntityFrameworkCore 1.0 rc2
中实现字段decimal(5,2)
?
HasPrecision
好像下架了?
我看到了一些这样的例子:
entityBuilder.Property(r => r.TotalScore)
.HasColumnType("decimal(5,2)")
.IsRequired(true);
支持此功能的代码在此处,因此希望您使用的版本支持此功能:
您可以像这样添加扩展:
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})");
}
}
仅供参考,如果有人还在回答这个问题(就像我一样)
在当前版本的 EF Core (2.2) 中,还有数据注释方法可以执行此操作:
public class SomeEFModelClass
{
[Column(TypeName = "decimal(5,2)")]
public decimal TotalScore{ get; set; }
}
Link 到文档:https://docs.microsoft.com/en-us/ef/core/modeling/relational/data-types
从 EF Core 5 开始,您可以使用这个:
modelBuilder.Entity<Payment>().Property(b => b.Amount).HasPrecision(5, 2);