在我的模型在asp.net核心時,我腳手架我的數據庫它只允許有兩個小數點,如0.10的數字,但是,我不允許插入四個小數位到我的數據庫。asp.net核心模型四位小數驗證
下面是我的模型。
public class Order
{
public int OrderID { get; set; }
[RegularExpression(@"^\d+.\d{0,4}$", ErrorMessage = "Must have four decimal places")]
[Range(0.0001, 1)]
[Display(Name = "Goal Diameter Tolerance")]
public decimal? GoalDiameterTolerance { get; set; }
}
以下是GoalDiameterTolerance scaffolded。它只允許有兩位小數。我可以改變它,但是,我如何在模型中的腳手架之前修復它。
GoalDiameterTolerance = table.Column<decimal>(type: "decimal(18, 2)", nullable: true),
它應該支持這個我相信。
GoalDiameterTolerance = table.Column<decimal>(type: "decimal(18, 4)", nullable: true),
這是我如何解決我的問題。
foreach (var property in modelBuilder.Model
.GetEntityTypes()
.SelectMany(t => t.GetProperties())
.Where(p => p.ClrType == typeof(decimal) ||
p.ClrType == typeof(decimal?))
.Select(p => modelBuilder.Entity(p.DeclaringEntityType.ClrType).Property(p.Name))
)
{
property.HasColumnType("decimal(18,4)");
}
[DisplayFormat(ApplyFormatInEditMode = TRUE,DataFormatString =「{0 :#。####}「)]是另一種不可行的方式。 –