private void RunChildPatch(DataAccessor <DMSource> accessor, DMSource model)
        {
            if (model.PatchClientID != null || model.PatchType != null)
            {
                var patchData = PatchTools.GetPatchData(model);
                if (patchData.PatchType == PatchTypeEnum.CREATE)
                {
                    accessor.CreateObject(model);
                }
                else if (patchData.PatchType == PatchTypeEnum.UPDATE)
                {
                    accessor.UpdateObject(model);
                }
                else if (patchData.PatchType == PatchTypeEnum.DELETE)
                {
                    accessor.DeleteObject(model.ID);
                }
            }

            accessor.DATA_MAP.ConnectionTypes.ForEach(connectionType =>
            {
                foreach (IDataModel connectionModel in accessor.DATA_MAP.ConnectionValue(connectionType, model))
                {
                    if (connectionModel.PatchType != null)
                    {
                        ExicuteNextChain(PatchTypeEnum.GetType(connectionModel.PatchType),
                                         accessor, connectionType, model, connectionModel);
                    }
                }
            });
        }
 protected void Delete(DataAccessor <DMSource> accessor, int id)
 {
     models.RemoveAll(source => source.ID == id);
     accessor.DeleteObject(id);
 }