Я создал пример проекта, который вы можете загрузить здесь .
Шаги для воссоздания вручную:
- Создание нового веб-проекта MVC3.
- Добавление .edmx
- Создание объекта с именем «Account.»
- Создание объекта с именем «AccountLineItem.»
- Добавление десятичного поля в «AccountLineItem.'
- Создайте связь «один ко многим» между «Account» и «AccountLineItem», не забудьте оставить флажок, чтобы создать свойство навигации для «Account».
Добавьте код для обновления БД в любом месте, я использовал Index () на HomeController:
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();
}
Как видите, я обновляю БД с помощью учетной записи и AccountLineItemсо значением 22,10;Однако после запуска этого кода в SQLEXPRESS появляется значение 22 без точности.
Я обнаружил это поведение с помощью окна SQL 2008 R2, поэтому я не думаю, что проблема связана с Express.
Может ли кто-нибудь повторить это поведение?Я делаю что-то явно не так?Все отзывы приветствуются.