コード例 #1
0
        public EdmColumnProvider(EntityType entityType, EdmTableProvider table, EdmMember m, bool isPrimaryKey, bool supportPagingAndSorting)
            : base(table)
        {
            EdmMember = m;
            IsPrimaryKey = isPrimaryKey;
            _table = table;
            _supportSorting = supportPagingAndSorting;
            MaxLength = 0;
            Name = EdmMember.Name;
            // REVIEW Seems like extra properties added in partial classes are not even detected by the metadata engine
            IsCustomProperty = false;

            // REVIEW: This should probably be a debug assert or we should only pass an EmdProperty
            var property = EdmMember as EdmProperty;

            if (property != null) {
                IsForeignKeyComponent = DetermineIsForeignKeyComponent(property);
                IsGenerated = IsServerGenerated(property);
            }

            ProcessFacets();

            var navProp = m as NavigationProperty;
            if (navProp != null) {
                _isAssociation = true;
                long key = EdmAssociationProvider.BuildRelationshipKey(entityType, navProp.FromEndMember);
                ((EdmDataModelProvider)table.DataModel).RelationshipEndLookup[key] = this;
            }
        }
コード例 #2
0
        private TableProvider CreateTableProvider(EntitySet entitySet, EntityType entityType,
            bool isReadonly, bool supportPagingAndSorting)
        {
            EntityType parentEntityType = entityType.BaseType as EntityType;

            // Normally, use the entity set name as the table name
            string tableName = entitySet.Name;

            EdmTableProvider table = new EdmTableProvider(this, entitySet, entityType, tableName, isReadonly, supportPagingAndSorting);
            TableEndLookup[entityType] = table;

            return table;
        }