Exemple #1
0
            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);
            }
Exemple #2
0
        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);
        }