[C#.NET][Entity Framework] Code First , mapping decimal/numeric precision and scale

[C#.NET][Entity Framework] Code First , mapping decimal/numeric precision and scale

小筆記

ColumnAttribute 可以讓我們自己指定最後對應到 SQL Server 的資料型態,不過,在.NET的資料型態需要是 decimal

[Column(TypeName = "numeric")] 
public decimal D { get; set; }

 

當我嘗試自訂精密度時,如下,會報錯

[Column(TypeName = "numeric(3,2)")] 
public decimal D { get; set; }

 

 

例外訊息如下:

image_thumb_thumb

 

 

最後利用 DecimalPropertyConfiguration.HasPrecision 方法,完成自定浮點數的精密度的需求

public class MyDbContext : DbContext 
{ 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
        base.OnModelCreating(modelBuilder); 
        modelBuilder.Entity<Account>().Property(o => o.D) 
            .HasPrecision(3, 2) 
            .HasColumnType("numeric"); 
    } 
}

 

 


文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/08/11/146227.aspx

 

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo