参数超出EF中的db.SaveChanges()范围

我正在开发一个带有Entity Framework的MVC应用程序。 我使用数据库第一种方法,在我的数据库中有一个数字字段:

[N15] NUMERIC (1, 1) NULL, 

我收到错误的代码是:

 public ActionResult allsave(VchrViewModel v) { List chklist = this.dt; if (br.vchrbalance(chklist) == true) { trm = v.master; trm.S100 = vt; var n = db.TrMs.Max(x => x.N100); trm.N100 = n + 1; trm.S104 = getmonth(trm.D1.ToString()); trm.S103 = getyear(trm.D1.ToString()); db.TrMs.Add(trm); db.SaveChanges(); seid = 0; var s = this.dt; foreach (TrD trd in s) { trd.S100 = vt; var d = db.TrDs.Max(x => x.N100); trd.N100 = d + 1; trd.N101 = v.master.N100; db.TrDs.Add(trd); db.SaveChanges(); TrnYes4MST(trd.S1); } return Json(new { msg = "Y" }); } else { return Json(new { msg = "N" }); } } 

我从视图中获取两个不同表的记录。 我已成功将记录保存在名为“TrM”的第一个表中,该表对N15没有任何价值。 但是在表“TrD”的foreach循环中,对于第一次迭代,N15 = 1.但是在db.SaveCHanges()方法中,我得到以下错误。

 Parameter {1.0} is out of range 

我重新生成了我的edmx文件,但仍然无法解决。

要存储1.0,您需要将数字声明为

 [N15] NUMERIC (2, 1) NULL, 

或者只是不宣布精确度。

请参阅: https : //msdn.microsoft.com/en-AU/library/ms187746.aspx

问题在于EDMX。 只有数据库中的更改才能使其正常工作。 由于EDMX不会随着数据库中的更改而自行更新,因此每次在数据库中进行更改后,都必须从Visual Studio更新EDMX。

我已在SQL Server中更新了我的表的设计,然后更新了EDMX。 之后,我为我的Model.tt文件运行自定义工具……并且它工作了!!!