ASP.NET MVC + Entity Framework 6 + OracleのDB FirstでWebアプリを作っていて、画面から入力した数値が、更新時に小数点第3位で四捨五入されてしまう問題に遭遇したので、対処法を記録しておきます。
「entity framework decimal mapping」の検索ワードで出てきた Entity Framework Data Type Mapping を見てみると、Decimal型のプロパティはDecimalPropertyConventionクラスによってNumber(18,2)にマッピングされているようです。
DbContextを継承したクラスでDecimalPropertyConventionを無効化することによって解決しました。
Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
' disable decimal property conversion
modelBuilder.Conventions.Remove(Of DecimalPropertyConvention)()
End Sub
プロパティ個別に設定したい場合は、こちらが参考になりそうです。
stackoverflow - Decimal precision and scale in EF Code First