public ActionResult EditFamily(Models.StudentFamily.Edit vm)
        {
            using (var db = new XkSystem.Models.DbContext())
            {
                var tb = new Student.Entity.tbStudentFamily();
                if (vm.StudentFamilyEdit.Id > 0)
                {
                    tb                 = db.Set <Student.Entity.tbStudentFamily>().Find(vm.StudentFamilyEdit.Id);
                    tb.FamilyName      = vm.StudentFamilyEdit.FamilyName;
                    tb.Job             = vm.StudentFamilyEdit.Job;
                    tb.Email           = vm.StudentFamilyEdit.Email;
                    tb.Mobile          = vm.StudentFamilyEdit.Mobile;
                    tb.tbDictKinship   = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId);
                    tb.UnitName        = vm.StudentFamilyEdit.UnitName;
                    tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(vm.StudentFamilyEdit.EducationId);
                }
                else
                {
                    tb = new Student.Entity.tbStudentFamily()
                    {
                        FamilyName      = vm.StudentFamilyEdit.FamilyName,
                        Job             = vm.StudentFamilyEdit.Job,
                        Mobile          = vm.StudentFamilyEdit.Mobile,
                        Email           = vm.StudentFamilyEdit.Email,
                        tbDictKinship   = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId),
                        UnitName        = vm.StudentFamilyEdit.UnitName,
                        tbStudent       = db.Set <Student.Entity.tbStudent>().Find(vm.StudentId),
                        tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(vm.StudentFamilyEdit.EducationId)
                    };

                    //当添加父亲、母亲时,判断数据库中是否已经有父母记录
                    var kinshipName = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId).KinshipName;
                    if (new string[] { "父亲", "母亲" }.Contains(kinshipName))
                    {
                        if (db.Table <Student.Entity.tbStudentFamily>().Where(d => d.tbDictKinship.Id == vm.StudentFamilyEdit.KinshipId && d.tbStudent.Id == vm.StudentId).Count() > 0)
                        {
                            var error = new List <string>();
                            error.Add("此亲属关系记录已经存在!");
                            return(Code.MvcHelper.Post(error));
                        }
                    }

                    db.Set <Student.Entity.tbStudentFamily>().Add(tb);
                }

                db.SaveChanges();
            }

            return(Code.MvcHelper.Post());
        }
        public bool InsertFamily(XkSystem.Models.DbContext db, Student.Entity.tbStudent student, string json)
        {
            var error = new List <string>();

            if (json.Length > 20)
            {
                List <Dto.StudentFamily.InsertFamily> list = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dto.StudentFamily.InsertFamily> >(json);

                foreach (var v in list)
                {
                    if (v.Id > 0)
                    {
                        #region 修改
                        var tb = (from p in db.Table <Student.Entity.tbStudentFamily>()
                                  where p.tbStudent.StudentCode == student.StudentCode && p.Id == v.Id
                                  select p).FirstOrDefault();
                        if (tb != null)
                        {
                            tb.FamilyName      = v.FamilyName;
                            tb.tbDictKinship   = db.Set <Dict.Entity.tbDictKinship>().Find(v.KinshipId);
                            tb.UnitName        = v.UnitName;
                            tb.Job             = v.Job;
                            tb.Mobile          = v.Mobile;
                            tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(v.EducationId);
                            XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改学生家庭成员");
                        }
                        else
                        {
                            error.AddError(Resources.LocalizedText.MsgNotFound);
                            return(false);
                        }
                        #endregion
                    }
                    else
                    {
                        #region 新增
                        var tb = new Student.Entity.tbStudentFamily();
                        tb.tbStudent       = student;
                        tb.FamilyName      = string.IsNullOrEmpty(v.FamilyName) ? "" : v.FamilyName;
                        tb.tbDictKinship   = db.Set <Dict.Entity.tbDictKinship>().Find(v.KinshipId);
                        tb.UnitName        = string.IsNullOrEmpty(v.UnitName) ? "" : v.UnitName;
                        tb.Job             = string.IsNullOrEmpty(v.Job) ? "" : v.Job;
                        tb.Mobile          = string.IsNullOrEmpty(v.Mobile) ? "" : v.Mobile;
                        tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(v.EducationId);
                        db.Set <Student.Entity.tbStudentFamily>().Add(tb);
                        XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加学生家庭成员");
                        #endregion
                    }
                }

                #region  除ID不属于json的全部数据
                var familyList = (from p in db.Table <Student.Entity.tbStudentFamily>()
                                  where p.tbStudent.StudentCode == student.StudentCode
                                  select p).ToList();
                foreach (var v in familyList)
                {
                    if (list.Where(d => d.Id == v.Id).Count() == 0)
                    {
                        v.IsDeleted = true;
                    }
                }
                #endregion
            }
            return(true);
        }