[EF] Any+批量新增+批量删除

        private void Save()
        {
            try
            {
                using (var context = new OAContext())
                {
                    try
                    {

                        string ym = Convert.ToDateTime(dateEnd.EditValue).Year + Convert.ToDateTime(dateEnd.EditValue).Month.ToString().PadLeft(2, '0');
                        if (action == "Add")//批处理新增
                        {


                            //检查是否存在推荐使用Any
                            if (context.R_RouteGoalBadRate.Any(o => o.YearMonth == ym))
                            {
                                XtraMessageBox.Show("年月【" + ym + "】已批量生成过,请先删除!");
                            }
                            else
                            {
                                //AsNoTracking()无跟踪查询技术(查询出来的数据不可以进行修改)
                                var psrlist = context.Set<R_ProductSeriesRoute>().AsNoTracking().OrderBy(r => r.ProductSeries).ThenBy(r => r.RouteCode).ToList();
                                if (psrlist == null) return;

                                List<R_RouteGoalBadRate> rgblist = new List<R_RouteGoalBadRate>();
                                foreach (var psr in psrlist)
                                {
                                    R_RouteGoalBadRate rgb = new R_RouteGoalBadRate();
                                    rgb.YearMonth = ym;
                                    rgb.ProductSeries = psr.ProductSeries;
                                    rgb.RouteCode = psr.RouteCode;
                                    rgb.GoalBadRate = psr.GoalBadRate;
                                    rgblist.Add(rgb);

                                }
                                //AddRange批量插入,提高效率
                                context.R_RouteGoalBadRate.AddRange(rgblist);
                                int c = context.SaveChanges();
                                if (c > 0)
                                {
                                    XtraMessageBox.Show("已初始化【" + ym + "】系列-工序-目标不良率!");
                                    this.Close();
                                }
                            }

                        }
                        else if (action == "Delete")
                        {
                            //提示确认是否删除
                            if (this.Confirm("确定批量删除【" + ym + "】系列 - 工序 - 目标不良率么?") == DialogResult.Cancel)
                                return;
                            var deletelist = context.Set<R_RouteGoalBadRate>().OrderBy(r => r.ProductSeries).ThenBy(r => r.RouteCode).ToList();
                            if (deletelist == null) return;

                            //RemoveRange批量删除,提高效率
                            context.R_RouteGoalBadRate.RemoveRange(deletelist);
                            int c = context.SaveChanges();
                            if (c > 0)
                            {
                                XtraMessageBox.Show("已批量删除【" + ym + "】系列-工序-目标不良率!");
                                this.Close();
                            }

                        }
                        else if (action == "Edit")
                        {
                            //1.先查询要修改的原数据
                            R_RouteGoalBadRate psr = context.R_RouteGoalBadRate.Where(a => a.ProductSeries == txtProductSeries.Text.Trim() && a.RouteCode == txtRouteCode.Text.Trim()).FirstOrDefault();
                            //2.设置修改后的值            
                            psr.GoalBadRate = Convert.ToDecimal(txtGoalBadRate.Text.Trim() == "" ? "0.00" : txtGoalBadRate.Text.Trim());
                            int c = context.SaveChanges();
                            if (c > 0)
                            {
                                XtraMessageBox.Show("系列:" + txtProductSeries.Text.Trim() + "工序:" + txtRouteCode.Text.Trim() + "目标不良率已变更!");
                                this.Close();
                            }
                        }
                        

                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("\n错误信息:{0}\n", ex.Message);
                        Console.WriteLine(ex.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.ToString(), "警告");
            }
        }

1.批量新增
在这里插入图片描述
在这里插入图片描述
批量删除:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 鲸 设计师: meimeiellie
应支付0元
点击重新获取
扫码支付

支付成功即可阅读