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; } }
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; }