我試圖找到一種方法來將我們物體中每個小數屬性的精度設定為與物體框架標準不同,但收效甚微。
我們的小數精度標準是 18, 6,這與物體框架標準的 14, 2 不同。我們目前為每個屬性設定它,如下所示:
modelBuilder.Entity<Entity>().Property(x => x.Property).HasPrecision(18, 6);
但是我們不想對每個小數點都這樣做,因為它總是設定為相同的,有時會被遺漏(我們最近花了很多時間回過頭來為我們遺漏的屬性添加這些,因此保存了資料到小數點后 2 位而不是 6 位)
任何幫助將不勝感激!
目前我唯一的解決方案是創建一個如下所示的多載方法,以便我們始終將精度和比例設定為相同的值:
public static void HasPrecision(this DecimalPropertyConfiguration decimalPropertyConfiguration, byte precision = 18, byte scale = 6)
{
decimalPropertyConfiguration.HasPrecision(precision, scale);
}
但這意味著我們仍然必須像以前一樣為每個 decimal 屬性呼叫它,因此對我們的前進幾乎沒有好處
uj5u.com熱心網友回復:
在 EF6 中,此行為由DecimalPropertyConvention控制。這意味著您可以洗掉該約定,然后添加回來,但使用您需要的值:
modelBuilder.Conventions.Remove<DecimalPropertyConvention>();
modelBuilder.Conventions.Add(new DecimalPropertyConvention(18, 6));
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537633.html
標籤:C#实体框架
