public static void insert(P_HoaDon objHD,List<P_DonDatHang> lstDDH)
 {
     using (var model=ModelConnector.Connector())
     {
         using(var _trans=model.Database.BeginTransaction())
         {
             try
             {
                 string _GuidID= Guid.NewGuid().ToString();
                 objHD.ID_HoaDon_CT = _GuidID;
                 model.P_HoaDon.Add(objHD);
                 foreach (var item in lstDDH)
                 {
                     P_HoaDonCT _ct = new P_HoaDonCT();
                     _ct.ID_HoaDon = _GuidID.ToString();
                     _ct.SoHoaDon = objHD.SoHoaDon;
                     _ct.SoDonDatHang = item.SoDonDatHang;
                     model.P_HoaDonCT.Add(_ct);
                     model.Entry(item).State = System.Data.Entity.EntityState.Modified;
                 }
                 model.SaveChanges();
                 _trans.Commit();
             }
             catch (Exception ex)
             {
                 _trans.Rollback();
                 throw new Exception(ex.Message);
             }
         }
     }
 }
        public static void update(P_HoaDon objHD, List<P_DonDatHang> lstDDH)
        {
            using (var model = ModelConnector.Connector())
            {
                using (var _trans = model.Database.BeginTransaction())
                {
                    try
                    {
                        model.Entry(objHD).State = System.Data.Entity.EntityState.Modified;

                        var lst_HD_CT = model.P_HoaDonCT.Where(a => a.ID_HoaDon == objHD.ID_HoaDon_CT).ToList();
                        foreach (var item in lst_HD_CT)
                        {
                            model.Entry(item).State = System.Data.Entity.EntityState.Deleted;
                            var objDDH = lstDDH.Where(a => a.SoDonDatHang == item.SoDonDatHang).FirstOrDefault();
                            if(objDDH==null)
                            {
                                objDDH = model.P_DonDatHang.Where(a => a.SoDonDatHang == item.SoDonDatHang).FirstOrDefault();
                                objDDH.SoHoaDon = "";
                                model.Entry(objDDH).State = System.Data.Entity.EntityState.Modified;
                            }
                        }
                        foreach (var item in lstDDH)
                        {
                            P_HoaDonCT _ct = new P_HoaDonCT();
                            _ct.ID_HoaDon = objHD.ID_HoaDon_CT;
                            _ct.SoHoaDon = objHD.SoHoaDon;
                            _ct.SoDonDatHang = item.SoDonDatHang;
                            model.P_HoaDonCT.Add(_ct);
                            model.Entry(item).State = System.Data.Entity.EntityState.Modified;
                        }

                        model.SaveChanges();
                        _trans.Commit();
                    }
                    catch (Exception ex)
                    {
                        _trans.Rollback();
                        throw new Exception(ex.Message);
                    }
                }
            }
        }