Exemple #1
0
        /// <summary>
        /// 复制一个实体
        /// </summary>
        /// <param name="entityID">实体ID</param>
        /// <param name="category">类别ID</param>
        /// <returns></returns>
        private string CopyChildEntity(string entityID, string category)
        {
            string codeName = string.Empty;

            #region 实体创建新实体及其子实体,。
            //待复制的实体
            DynamicEntity oldEntity = DESchemaObjectAdapter.Instance.Load(entityID) as DynamicEntity;
            //要复制的实体
            DynamicEntity         entity           = DESchemaObjectAdapter.Instance.Load(entityID) as DynamicEntity;
            List <FieldIDMapping> listMappingField = new List <FieldIDMapping>();
            //复制指标实体
            foreach (var item in entity.Fields)
            {
                if (item.FieldType == FieldTypeEnum.Collection)
                {
                    DynamicEntity childEntity = DEDynamicEntityAdapter.Instance.LoadByCodeName(item.ReferenceEntityCodeName) as DynamicEntity;
                    item.ReferenceEntityCodeName = CopyChildEntity(childEntity.ID, category);
                }
            }
            //从新NEW当前实体及其子表的ID和VersionTime,从而创建一个新的实体
            entity.BuildNewEntity(category);
            #endregion

            //新实体入库
            this.AddEntity(entity);
            codeName = entity.CodeName;
            return(codeName);
        }