private int[] GetColumnOrdinals(NamedColumn[] namedColumns) { DbDataReader bufferReader = BufferReader ?? DataReader; if ((namedColumns == null) || (namedColumns.Length == 0)) { return(null); } var numArray = new int[namedColumns.Length]; var dictionary = new Dictionary <string, int>(StringComparer.OrdinalIgnoreCase); int ordinal = 0; int fieldCount = bufferReader.FieldCount; while (ordinal < fieldCount) { dictionary[SqlIdentifier.QuoteCompoundIdentifier(bufferReader.GetName(ordinal))] = ordinal; ordinal++; } int index = 0; int length = namedColumns.Length; while (index < length) { int num5; if (dictionary.TryGetValue(SqlIdentifier.QuoteCompoundIdentifier(namedColumns[index].Name), out num5)) { numArray[index] = num5; } else { if (namedColumns[index].IsRequired) { throw Error.RequiredColumnDoesNotExist(namedColumns[index].Name); } numArray[index] = -1; } index++; } return(numArray); }
private int BuildFieldDeclarations(MetaType type, IDictionary <object, string> memberNameToMappedName, StringBuilder sb) { int num = 0; foreach (MetaDataMember member in type.DataMembers) { string str; if ((!member.IsDeclaredBy(type) || member.IsAssociation) || !member.IsPersistent) { continue; } object key = InheritanceRules.DistinguishedMemberName(member.Member); if (memberNameToMappedName.TryGetValue(key, out str)) { if (!(str == member.MappedName)) { goto Label_0075; } continue; } memberNameToMappedName.Add(key, member.MappedName); Label_0075: if (sb.Length > 0) { sb.Append(", "); } sb.AppendLine(); sb.Append(string.Format(CultureInfo.InvariantCulture, " {0} ", new object[] { SqlIdentifier.QuoteCompoundIdentifier(member.MappedName) })); if (!string.IsNullOrEmpty(member.Expression)) { sb.Append("AS " + member.Expression); } else { sb.Append(GetDbType(member)); } num++; } return(num); }