Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 仅保存单个明细记录的实体框架主明细批处理crud_Asp.net Mvc 3_Entity Framework 5_Master Detail_Edmx_Objectcontext - Fatal编程技术网

Asp.net mvc 3 仅保存单个明细记录的实体框架主明细批处理crud

Asp.net mvc 3 仅保存单个明细记录的实体框架主明细批处理crud,asp.net-mvc-3,entity-framework-5,master-detail,edmx,objectcontext,Asp.net Mvc 3,Entity Framework 5,Master Detail,Edmx,Objectcontext,我正在构建一个具有批量编辑功能的主详细信息页面,即多个详细信息记录和单个主记录。但数据库中只保存了一条详细记录。我试着调试&发现detail循环可以多次准确地执行,但不能保存多个数据。以下是我的保存方法代码: public ActionResult CMN_VAL_FORM(HRM_CMN_VLU_MST_ViewModel model) { //var ctx=new Entities1(); var CMN_VLU_MST_OBJ = new HRM_

我正在构建一个具有批量编辑功能的主详细信息页面,即多个详细信息记录和单个主记录。但数据库中只保存了一条详细记录。我试着调试&发现detail循环可以多次准确地执行,但不能保存多个数据。以下是我的保存方法代码:

public ActionResult CMN_VAL_FORM(HRM_CMN_VLU_MST_ViewModel model)
    {
        //var ctx=new Entities1();
        var CMN_VLU_MST_OBJ = new HRM_CMN_VLU_MST();
        var CMN_VLU_DTL_OBJ = new HRM_CMN_VLU_DTL();

        //using (TransactionScope transaction = new TransactionScope())
        //{

            using (var ctx = new Entities1())
            {
                var type_code = ctx.ExecuteStoreQuery<string>("select get_pk_code('hrm_cmn_vlu_mst','CMN_VLU_TYPE_CODE') from dual").SingleOrDefault(); //A scalar function to generate the code in the format yymmdd0001
                var value_code = ctx.ExecuteStoreQuery<string>("select get_pk_code('hrm_cmn_vlu_dtl','CMN_VLU_CODE') from dual").SingleOrDefault();
                CMN_VLU_MST_OBJ.CMN_VLU_TYPE_CODE = type_code;
                CMN_VLU_MST_OBJ.CMN_VLU_REM = model.CMN_VLU_REM;
                CMN_VLU_MST_OBJ.CMN_VLU_TYPE_FOR = model.CMN_VLU_TYPE_FOR;
                CMN_VLU_MST_OBJ.CMN_VLU_TYPE_SRTNM = model.CMN_VLU_TYPE_SRTNM;
                CMN_VLU_MST_OBJ.ENTRY_DATE = DateTime.Now;
                CMN_VLU_MST_OBJ.CMN_VLU_TYPE_NAME = model.CMN_VLU_TYPE_NAME;

                foreach (var item in model.HRM_CMN_VLU_DTL)
                {

                    CMN_VLU_DTL_OBJ.CMN_VLU_LEVL = item.CMN_VAL_LEVL;
                    CMN_VLU_DTL_OBJ.CMN_VLU_REM = item.CMN_VLU_REM;
                    CMN_VLU_DTL_OBJ.CMN_VLU_SLNO = item.CMN_VLU_SLNO;
                    CMN_VLU_DTL_OBJ.CMN_VLU_TITL = item.CMN_VAL_TITL;
                    CMN_VLU_DTL_OBJ.CMN_VLU_CNTN = item.CMN_VAL_CNTN;
                    CMN_VLU_DTL_OBJ.CMN_VLU_CODE = value_code;
                    CMN_VLU_DTL_OBJ.CMN_VLU_TYPE_CODE = type_code;
                    CMN_VLU_DTL_OBJ.ENTRY_DATE = DateTime.Now;
                    CMN_VLU_DTL_OBJ.MAIL_ADDR_INT = item.MAIL_ADDR_INT;
                    CMN_VLU_DTL_OBJ.MAIL_ADDR_EXT = item.MAIL_ADDR_EXT;
                    CMN_VLU_DTL_OBJ.MAIL_AUTO_SEND_INT = item.MAIL_AUTO_SEND_INT;
                    CMN_VLU_DTL_OBJ.MAIL_AUTO_SEND_EXT = item.MAIL_AUTO_SEND_EXT;
                    CMN_VLU_DTL_OBJ.ACTIVE_STATUS = item.ACTIVE_STATUS;
                    CMN_VLU_MST_OBJ.HRM_CMN_VLU_DTL.Add(CMN_VLU_DTL_OBJ);

                    ctx.SaveChanges();
                    var temp_value_code = Int32.Parse(value_code);
                    temp_value_code++;
                    value_code = temp_value_code.ToString();
                    ctx.HRM_CMN_VLU_MST.AddObject(CMN_VLU_MST_OBJ);
                }


                ctx.SaveChanges();

            //    transaction.Complete();

            //}
        }



        return View();
    }
公共行动结果CMN\u VAL\u表单(HRM\u CMN\u VLU\u MST\u视图模型)
{
//var ctx=新实体1();
var CMN_VLU_MST_OBJ=新的人力资源管理系统CMN_VLU_MST();
var CMN_VLU_DTL_OBJ=新的人力资源管理系统CMN_VLU_DTL();
//使用(TransactionScope transaction=new TransactionScope())
//{
使用(var ctx=new Entities1())
{
var type_code=ctx.ExecuteStoreQuery(“从dual中选择get_pk_code('hrm_cmn_vlu_mst','cmn_vlu_type_code'))。SingleOrDefault();//一个标量函数,用于生成格式为yymmdd0001的代码
var value_code=ctx.ExecuteStoreQuery(“从dual中选择get_pk_code('hrm_cmn_vlu_dtl','cmn_vlu_code'))。SingleOrDefault();
CMN_VLU_MST_OBJ.CMN_VLU_TYPE_CODE=TYPE_CODE;
CMN_VLU_MST_OBJ.CMN_VLU_REM=model.CMN_VLU_REM;
CMN_VLU_MST_OBJ.CMN_VLU_TYPE_FOR=model.CMN_VLU_TYPE_FOR;
CMN_VLU_MST_OBJ.CMN_VLU_TYPE_SRTNM=model.CMN_VLU_TYPE_SRTNM;
CMN_VLU_MST_OBJ.ENTRY_DATE=DateTime.Now;
CMN_VLU_MST_OBJ.CMN_VLU_TYPE_NAME=model.CMN_VLU_TYPE_NAME;
foreach(模型.HRM\u CMN\u VLU\u DTL中的var项)
{
CMN_VLU_DTL_OBJ.CMN_VLU_level=item.CMN_VAL_level;
CMN_VLU_DTL_OBJ.CMN_VLU_REM=item.CMN_VLU_REM;
CMN_VLU_DTL_OBJ.CMN_VLU_SLNO=item.CMN_VLU_SLNO;
CMN_VLU_DTL_OBJ.CMN_VLU_TITL=item.CMN_VAL_TITL;
CMN_VLU_DTL_OBJ.CMN_VLU_CNTN=item.CMN_VAL_CNTN;
CMN_VLU_DTL_OBJ.CMN_VLU_CODE=值_CODE;
CMN_VLU_DTL_OBJ.CMN_VLU_类型代码=类型代码;
CMN_VLU_DTL_OBJ.ENTRY_DATE=DateTime.Now;
CMN_VLU_DTL_OBJ.MAIL_ADDR_INT=item.MAIL_ADDR_INT;
CMN_VLU_DTL_OBJ.MAIL_ADDR_EXT=item.MAIL_ADDR_EXT;
CMN_VLU_DTL_OBJ.MAIL_AUTO_SEND_INT=item.MAIL_AUTO_SEND_INT;
CMN_VLU_DTL_OBJ.MAIL_AUTO_SEND_EXT=item.MAIL_AUTO_SEND_EXT;
CMN_VLU_DTL_OBJ.ACTIVE_状态=item.ACTIVE_状态;
CMN_VLU_MST_OBJ.HRM_CMN_VLU_DTL.Add(CMN_VLU_DTL_OBJ);
ctx.SaveChanges();
var temp_value_code=Int32.Parse(value_code);
温度值代码++;
value_code=temp_value_code.ToString();
ctx.HRM_CMN_VLU_MST.AddObject(CMN_VLU_MST_OBJ);
}
ctx.SaveChanges();
//transaction.Complete();
//}
}
返回视图();
}

代码没有错误消息,但未保存多个详细记录。我做错了什么?

我做错了什么,我只创建了一次对象&每次执行foreach循环时都会更新同一个对象!我刚刚将对象声明移动到foreach循环中&它就像一个符咒