• EntityFramework Version=6.0.0.0
  • .Net Framework targetFramework="4.6.1"
  • SQL Server Express 13.0.4001.0

SQL Server上のテーブルに、Decimal(12, 3)、Decimal(18, 3)で作成したカラムがあり、Linqを使ってそのカラムの更新を行っています。

decimal? d12 = 123.456m;
decimal? d18 = 222.222m;
Record rec = DbContext.Table.Where(a => a.id == 1).First();
rec.dec12_3col = d12;
rec.dec18_3col = d18;
DbContext.SaveChanges();

そして更新後にSQL Server Management Studioでデータを確認すると、dec12_3colには 123.450、 dec18_3colには 222.220 が入っており、小数3桁めが切り捨てられてしまっています。

SaveChangesを呼び出す前のところでデバッガでrecを見てもそれぞれ小数3桁まで値がセットされているのを確認できるので、どこを直したらいいものなのか分からず困っています。

よろしくお願いします。