public void SetRelation(string relationMappingLogicalName, Entity[] sourceEntities, IDatastore dataObject, Dictionary <string, Guid[]> relatedEntities) { EntityMapper entityMapper = new EntityMapper(relatedEntityMetadata.GetAttributeMetadata(), dataObject.Metadata, relationMappings, null); for (int i = 0; i < sourceEntities.Length; i++) { Entity relatedEntity = new Entity(); entityMapper.MapAttributes(relatedEntity, dataObject[i]); string relatedEntityKey = JoinResolver.BuildExistingCheckKey(relatedEntity, attributeMetadataDictionary); if (relatedEntities.ContainsKey(relatedEntityKey)) { // TODO Check if attribute has already been mapped (cause multiple relations on one attribute) sourceEntities[i].Attributes.Add(relationMappingLogicalName, new EntityReference(this.relatedEntityMetadata.LogicalName, relatedEntities[relatedEntityKey][0])); } else { //throw new Exception("Could not resolve related entity with key " + relatedEntityKey); } } }