Esempio n. 1
0
        /// <summary>
        /// 创建外部实体字段
        /// </summary>
        /// <returns></returns>
        private OuterEntityField creatChildEntity()
        {
            string fieldId = Guid.NewGuid().ToString();

            var newOuterEntityField = new OuterEntityField()
            {
                ID   = fieldId,
                Name = "OuterEntityField",
            };

            return(newOuterEntityField);
        }
Esempio n. 2
0
        /// <summary>
        /// 创建外部实体
        /// </summary>
        /// <returns></returns>
        private OuterEntityField createOuterEntityField(string flag = "new")
        {
            var outerEntity = new OuterEntityField()
            {
                ID          = Guid.NewGuid().ToString(),
                Name        = "外部实体字段",
                Description = "描述" + flag,
                //CodeName = "OuterEntityField",
                Creator = (IUser)OguBase.CreateWrapperObject(new OguUser("22c3b351-a713-49f2-8f06-6b888a280fff")),//wangli5
            };

            return(outerEntity);
        }
Esempio n. 3
0
        public void CopyEntityWithOutEntityMethodTest()
        {
            // /集团公司/管道板块/运输
            string categoryID = "48BE753C-630D-42F4-A02D-D2B50818F817";
            // /集团公司/销售板块/销售订单
            string terminalCategoryID = "EBABB15A-AFD8-4072-A5C9-03F1B0B5CDFF";

            var entity      = creatEntity(categoryID);
            var childEntity = creatChildEntity(categoryID);
            //外部实体字段
            OuterEntityField outField = new OuterEntityField()
            {
                Name        = "OutField",
                ID          = Guid.NewGuid().ToString(),
                Description = "外部字段"
            };
            //外部实体
            OuterEntity outEntity = new OuterEntity()
            {
                ID          = Guid.NewGuid().ToString(),
                Name        = "OEntity",
                Description = "外部实体"
            };


            //子表入库
            DEObjectOperations.InstanceWithoutPermissions.AddEntity(childEntity);
            //子表CodeName
            string childCodeName = childEntity.CodeName;
            //主表字段跟子表关联
            var field = entity.Fields[0];

            field.FieldType = FieldTypeEnum.Collection;
            field.ReferenceEntityCodeName = childCodeName;
            // field.OuterEntityFields.Add(outField);
            //主表入库
            DEObjectOperations.InstanceWithoutPermissions.AddEntity(entity);

            //实体字段与外部实体字段的Mapping
            EntityFieldMapping fieldMapping = new EntityFieldMapping()
            {
                FieldID           = field.ID,
                FieldDefaultValue = field.DefaultValue,
                FieldDesc         = field.Description,
                FieldLength       = field.Length,
                FieldName         = field.Name,
                FieldTypeName     = field.FieldType.ToString(),
                //OuterFieldID = outField.ID,
                //OuterFieldName = outField.Name,
                SortNo = field.SortNo
            };
            List <EntityFieldMapping> entityFieldMappingCollection = new List <EntityFieldMapping>();

            entityFieldMappingCollection.Add(fieldMapping);
            //实体和外部实体的Mapping
            EntityMapping mapping = new EntityMapping()
            {
                InnerEntity                  = entity,
                OuterEntityID                = outEntity.ID,
                OuterEntityName              = outEntity.Name,
                OuterEntityInType            = Contract.InType.StandardInterface,
                EntityFieldMappingCollection = entityFieldMappingCollection
            };

            DEObjectOperations.InstanceWithoutPermissions.AddEntityMapping(mapping);

            List <string> entitiesIDs = new List <string>();

            entitiesIDs.Add(entity.ID);
            entitiesIDs.Add(childEntity.ID);
            List <string> categoriesIDs = new List <string>();

            categoriesIDs.Add(terminalCategoryID);
            DEObjectOperations.InstanceWithoutPermissions.CopyEntities(entitiesIDs, categoriesIDs);

            DynamicEntity copyEntity      = DEDynamicEntityAdapter.Instance.LoadByCodeName("/集团公司/销售板块/销售订单/" + entity.Name) as DynamicEntity;
            DynamicEntity copyChildEntity = DEDynamicEntityAdapter.Instance.LoadByCodeName("/集团公司/销售板块/销售订单/" + childEntity.Name) as DynamicEntity;

            Assert.IsNotNull(copyEntity, string.Format("实体[/集团公司/销售板块/销售订单/{0}]复制失败", entity.Name));
            Assert.IsNotNull(copyChildEntity, string.Format("子实体[/集团公司/销售板块/销售订单/{0}]复制失败", childEntity.Name));
            Assert.AreEqual(copyEntity.Fields[0].FieldType, FieldTypeEnum.Collection, string.Format("实体[/集团公司/销售板块/销售订单/{0}]的字段复制失败", entity.Name));
            Assert.AreEqual(copyEntity.Fields[0].ReferenceEntityCodeName, copyChildEntity.CodeName, string.Format("实体[/集团公司/销售板块/销售订单/{0}]的字段复制失败", entity.Name));
            //Assert.AreEqual(copyEntity.OuterEntities.Count, entity.OuterEntities.Count, "实体字段外部实体复制失败");
            //Assert.AreEqual(copyEntity.OuterEntities[0].Name, entity.OuterEntities[0].Name, "实体字段外部实体复制失败");
            //Assert.AreEqual(copyEntity.Fields[0].OuterEntityFields.Count, 1, "实体字段外部实体字段复制失败");
            //Assert.AreEqual(copyEntity.Fields[0].OuterEntityFields.Count, entity.Fields[0].OuterEntityFields.Count, "实体字段外部实体字段复制失败");
            //Assert.AreEqual(copyEntity.Fields[0].OuterEntityFields[0].Name, "OutField", "实体字段外部实体字段复制失败");
        }