private TableMetadata CreateBaseMetadata(IMetadataBuilderContext context, IRelationMetadata attribute, TableMetadata parent) { TableMetadata metadata = new TableMetadata(attribute); metadata.Item = this.CreateItem(context, metadata); metadata.Properties = new Lazy <IReadOnlyList <TableMetadata> >(() => this.CreateProperties(context, metadata).ToList()); this.AddTableMetadata(metadata); this.AddColumnMetadata(metadata, parent); context.AddMetadata <ITableMetadata>(metadata); return(metadata); }
private IEnumerable <TableMetadata> CreateProperties(IMetadataBuilderContext context, TableMetadata parent) { foreach (IRelationMetadata property in parent.Relation.Properties) { yield return(this.CreateBaseMetadata(context, property, parent)); } }