protected EdmProperty MapTableColumn( EdmProperty property, string columnName, bool isInstancePropertyOnDerivedType) { DebugCheck.NotNull(property); DebugCheck.NotEmpty(columnName); var underlyingTypeUsage = TypeUsage.Create(property.UnderlyingPrimitiveType, property.TypeUsage.Facets); var storeTypeUsage = _providerManifest.GetStoreType(underlyingTypeUsage); var tableColumnMetadata = new EdmProperty(columnName, storeTypeUsage) { Nullable = isInstancePropertyOnDerivedType || property.Nullable }; if (tableColumnMetadata.IsPrimaryKeyColumn) { tableColumnMetadata.Nullable = false; } var storeGeneratedPattern = property.GetStoreGeneratedPattern(); if (storeGeneratedPattern != null) { tableColumnMetadata.StoreGeneratedPattern = storeGeneratedPattern.Value; } MapPrimitivePropertyFacets(property, tableColumnMetadata, storeTypeUsage); return tableColumnMetadata; }