Пример #1
0
        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);
                }
            }
        }