private void EFAddOrModifyUser(EFClassLib.TableModel.UserInfor UserInf) { isEFRun = true; AddUser addusFrm = new AddUser(); addusFrm.SetEFModiInfor(UserInf); if (UserInf == null) { if (addusFrm.ShowDialog() == DialogResult.OK) { var usInfor = addusFrm.GetEFUserInfor(); usInfor.Address = new List <EFClassLib.TableModel.Address>(); usInfor.Address.Add(new EFClassLib.TableModel.Address { addr = "yyyy", Email = "*****@*****.**", phone = "000000" }); usInfor.Address.Add(new EFClassLib.TableModel.Address { addr = "yyyy", Email = "*****@*****.**", phone = "000000" }); usInfor.Address.Add(new EFClassLib.TableModel.Address { addr = "yyyy", Email = "*****@*****.**", phone = "000000" }); if (usInfor != null) { using (DBCTxt db = GetEFContext()) { db.UserInfor.Add(usInfor); db.SaveChanges(); } RefreshDataByEF(); } else { AddAndShowMessages("Nothing is Add"); } } } else { //addusFrm.SetEFModiInfor(UserInf); switch (addusFrm.ShowDialog()) { case DialogResult.OK: var usInfor = addusFrm.GetEFUserInfor(); if (usInfor != null) { using (DBCTxt db = GetEFContext()) { var uif = db.UserInfor.Where(x => x.id == UserInf.id).FirstOrDefault(); if (uif != null) { uif.FirstName = usInfor.FirstName; uif.LastName = usInfor.LastName; uif.Password = usInfor.Password; uif.UserName = usInfor.UserName; foreach (var addr in uif.Address) { addr.Email = "*****@*****.**"; } db.SaveChanges(); } } RefreshDataByEF(); } else { AddAndShowMessages("Nothing is Modify"); } break; case DialogResult.No: using (DBCTxt db = GetEFContext()) { db.Database.ExecuteSqlCommand("delete from UserInfors where id=@id" , new SqlParameter("@id", UserInf.id) ); } RefreshDataByEF(); break; default: break; } } }