static SteStructuredTypeBoundaries() { AllColumnTypesExceptUdts = new SteStructuredTypeBoundaries(SteSimpleTypeBoundaries.s_allTypesExceptUdts, true); AllColumnTypes = new SteStructuredTypeBoundaries(SteSimpleTypeBoundaries.s_allTypes, true); UdtsOnly = new SteStructuredTypeBoundaries(SteSimpleTypeBoundaries.s_udtsOnly, true); AllTypes = new List <SteStructuredTypeBoundaries>(); AllTypes.Add(AllColumnTypes); AllTypes.Add(AllColumnTypesExceptUdts); AllTypes.Add(UdtsOnly); }
public SteStructuredTypeBoundariesEnumerator( SteStructuredTypeBoundaries parent, IEnumerable <SteAttributeKey> keysOfInterest, bool isMultiValued) { _parent = parent; _typeNameBase = "SteStructType" + Guid.NewGuid(); _isMultiValued = isMultiValued; _current = null; // Separate values from everything else, so we can generate a complete table per permutation based on said values. bool usesValues = false; _metaDataKeysOfInterest = new List <SteAttributeKey>(); foreach (SteAttributeKey key in keysOfInterest) { if (SteAttributeKey.Value == key) { usesValues = true; } else { _metaDataKeysOfInterest.Add(key); } } if (usesValues) { if (_isMultiValued) { CreateSeparateValueList(); } else { _metaDataKeysOfInterest.Add(SteAttributeKey.Value); } } // set up rowcount column _rowCountColumn = new StePermutation(); if (0 <= _metaDataKeysOfInterest.IndexOf(SteAttributeKey.SqlDbType)) { _rowCountColumn.Add(SteAttributeKey.SqlDbType, SqlDbType.Int); } Reset(); }