Affecting the Precision and Scale of Decimals
前言
通常只要是計算到錢或者是精細度要比較高的計算欄位,都會用decimal,而Code First預設的decimal長度為(18,2),如果要修改的話使用Code First也是非常簡單,只是只能用Fluent的方式,預設沒辦法使用Data Annotation(除非自己寫擴充)。
Convention | Decimals are 18, 2 |
Data Annotation | unavailable |
Fluent | Entity<T>.Property(t=>t.PropertyName).HasPrecision(n,n) |
如以下範例:
public class Room
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Identifier { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
預設為decimal(18,2)
使用Fluent API設定後
public class RoomConfiguration : EntityTypeConfiguration<Room>
{
public RoomConfiguration()
{
Property(x => x.Price).HasPrecision(10, 2);
}
}
一天一分享,身體好健康。
該追究的不是過去的原因,而是現在的目的。