Esempio n. 1
0
 private IEnumerable <object> ReadReader(IDataLinqDataReader reader, TableMetadata table)
 {
     foreach (var column in table.PrimaryKeyColumns)
     {
         yield return(reader.ReadColumn(column));
     }
 }
Esempio n. 2
0
        public static object ReadColumn(this IDataLinqDataReader reader, Column column)
        {
            var    ordinal = reader.GetOrdinal(column.DbName);
            object value;

            if (column.ValueProperty.CsType == typeof(DateOnly))
            {
                value = reader.GetDateOnly(ordinal);
            }
            else
            {
                value = reader.GetValue(ordinal);
            }

            if (value is DBNull)
            {
                return(null);
            }
            else if (column.ValueProperty.CsNullable)
            {
                return(Convert.ChangeType(value, column.ValueProperty.CsType.GetNullableConversionType()));
            }
            else if (column.DbType == "enum")
            {
                return(1); //TODO: Fix enum support
            }
            else if (value.GetType() != column.ValueProperty.CsType)
            {
                return(Convert.ChangeType(value, column.ValueProperty.CsType));
            }

            return(value);
        }
Esempio n. 3
0
        private (Dictionary <string, object> data, int size) ReadReader(IDataLinqDataReader reader, TableMetadata table)
        {
            var data = new Dictionary <string, object>();
            var size = 0;

            foreach (var column in table.Columns)
            {
                var value = reader.ReadColumn(column);
                size += GetSize(column, value);

                data.Add(column.DbName, value);
            }

            return(data, size);
        }
Esempio n. 4
0
 public PrimaryKeys(IDataLinqDataReader reader, TableMetadata table)
 {
     Data = ReadReader(reader, table).ToArray();
 }
Esempio n. 5
0
        //public RowData(Dictionary<string, object> data, TableMetadata table)
        //{
        //    Data = data;
        //    Table = table;
        //}

        public RowData(IDataLinqDataReader reader, TableMetadata table)
        {
            Table        = table;
            (Data, Size) = ReadReader(reader, table);
        }