public int CreateOneToManyRelationship(string fieldName, string relationName, string primaryEntityName, string relatedEntityName) { var primaryEntity = _contentMetadataService.GetEntity(primaryEntityName); var relatedEntity = _contentMetadataService.GetEntity(relatedEntityName); var fieldRecord = relatedEntity.FieldMetadataRecords.FirstOrDefault(field => field.Name == fieldName); if (fieldRecord == null) { return(-1); } var relationship = CreateRelation(new RelationshipRecord { Name = relationName, PrimaryEntity = primaryEntity.Record, RelatedEntity = relatedEntity.Record, Type = (byte)RelationshipType.OneToMany }); var projectionPart = CreateProjection(relatedEntityName, null); var oneToMany = new OneToManyRelationshipRecord { DeleteOption = (byte)OneToManyDeleteOption.CascadingDelete, LookupField = fieldRecord, RelatedListProjection = projectionPart.Record, RelatedListLabel = relatedEntityName, Relationship = relationship, ShowRelatedList = false }; _oneToManyRepository.Create(oneToMany); return(oneToMany.Id); }
public void DeleteRelationship(OneToManyRelationshipRecord record) { if (record == null) { return; } record.RelatedListProjection.QueryPartRecord.Layouts.Clear(); record.RelatedListProjection.QueryPartRecord.FilterGroups.Clear(); _oneToManyRepository.Delete(record); _relationshipRepository.Delete(record.Relationship); }