参数超出范围上db.SaveChanges()的EF [英] Parameter is out of range on db.SaveChanges() in EF

查看:402
本文介绍了参数超出范围上db.SaveChanges()的EF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发展与实体框架MVC应用程序。我使用的数据库第一的方针,并在我的数据库有一个数字字段为:

I am developing a MVC app with Entity Framework. I am using Database first approach and in my Database there is a numeric field as:

[N15]  NUMERIC (1, 1)  NULL,

我的code,其中我得到的错误是:

My code where I am getting error is:

public ActionResult allsave(VchrViewModel v)
{  
    List<TrD> 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没有价值的第一个表。但在foreach循环为表​​TRD,对于第一次迭代N15 = 1。
但在db.SaveCHanges()方法,我碰到下面的错误。

I am getting records for two different tables from the view. I have successfully saved the record in first table named "TrM" which has no value for N15. But in the foreach loop for table "TrD", for the first iteration N15 = 1. But on db.SaveCHanges() method I get the following error.

Parameter {1.0} is out of range

我已经再生我的EDMX文件,但仍然不能解决。

I have regenerated my edmx file but still unable to resolve.

推荐答案

的问题是与EDMX。只有在数据库更改不会使它工作。因为EDMX不触犯在数据库中的改变之后与每个时间的变化在数据库中,因此更新本身,人们必须从Visual Studio更新EDMX。

The problem was with the EDMX. Only changes in database does not make it work. Since EDMX does not updates itself with the changes in database, so each time after committing a change in database, one has to update EDMX from Visual Studio.

我已经更新了我的表在SQL Server中的设计,然后更新EDMX。从那以后,我运行自定义工具为我Model.tt文件...和它的工作!

I have updated the design of my table in SQL Server and then updated the EDMX. After that I run the Custom Tool for my Model.tt file... And it Worked!!!

这篇关于参数超出范围上db.SaveChanges()的EF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆