/// <summary> /// 创建外部实体字段 /// </summary> /// <returns></returns> private OuterEntityField creatChildEntity() { string fieldId = Guid.NewGuid().ToString(); var newOuterEntityField = new OuterEntityField() { ID = fieldId, Name = "OuterEntityField", }; return(newOuterEntityField); }
/// <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); }
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", "实体字段外部实体字段复制失败"); }