Пример #1
0
        protected IEnumerable <EntityAttribute> AddGenericRelationshipAttributes(AttributesMode includeCollections, string prefix = null)
        {
            var relationshipAttributes = new List <EntityAttribute>();
            var associations           = includeCollections == AttributesMode.IncludeCollections ? Associations : NonListAssociations();

            foreach (var usedRelationship in associations)
            {
                if (usedRelationship is SlicedEntityAssociation)
                {
                    //add only the attributes that are used for a given relationship
                    relationshipAttributes.AddRange(((SlicedEntityAssociation)usedRelationship).SlicedAttributes);
                }
                else
                {
                    var relatedEntity = MetadataProvider.Entity(usedRelationship.To);
                    foreach (var entityAttribute in GetAttributesToIterate(relatedEntity, usedRelationship))
                    {
                        var key             = prefix == null ? usedRelationship.Qualifier : prefix + usedRelationship.Qualifier;
                        var clonedAttribute = entityAttribute.ClonePrependingContext(key);
                        relationshipAttributes.Add(clonedAttribute);
                    }
                }
            }
            return(relationshipAttributes);
        }
Пример #2
0
        public IEnumerable <EntityAttribute> Attributes(AttributesMode includeCollections)
        {
            var entityAttributes      = _schema.Attributes.ToList();
            var associationAttributes = includeCollections == AttributesMode.IncludeCollections ?
                                        _relationshipAttributes.Value : _nonCollectionrelationshipAttributes.Value;

            entityAttributes.AddRange(associationAttributes);
            return(new HashSet <EntityAttribute>(entityAttributes));
        }