ここからダウンロードできるサンプルプロジェクトを作成しました。
手動で再作成する手順:
- 新しいMVC3Webプロジェクトを作成します。
- .edmxを追加します
- 「アカウント」という名前のエンティティを作成します。
- 'AccountLineItem'という名前のエンティティを作成します。
- 'AccountLineItem'にDecimalフィールドを追加します。
- 'Account'と'AccountLineItem'の間に1対多の関連付けを作成します。必ず、'Account'にナビゲーションプロパティを作成するオプションをオンのままにしてください。
DBをどこでも更新するコードを追加します。HomeControllerでIndex()を使用しました。
public ActionResult Index() { ViewBag.Message = "Welcome to ASP.NET MVC!"; using (var db = new TestStoreContainer()) { Account acc = new Account(); acc.Name = "Test Account"; AccountLineItem accItem = new AccountLineItem(); accItem.Amount = 22.10M; acc.AccountLineItems.Add(accItem); db.Accounts.AddObject(acc); db.SaveChanges(); } return View(); }
ご覧のとおり、私はDBをアカウントで更新し、AccountLineItemを値22.10で更新しています。ただし、このコードを実行すると、値22がSQLEXPRESSに精度なしで表示されます。
SQL 2008 R2ボックスを使用してこの動作を発見したので、問題がExpressにあるとは思われません。
他の誰かがこの振る舞いを再現できますか?私は露骨に間違ったことをしていますか?すべてのフィードバックを歓迎します。