Ejemplo n.º 1
0
        public T ToSingle(DataRow row)
        {
            EntityDescription description = EntityDescriptionCache.Get(typeof(T));
            DataTable         table       = row.Table;

            return(GetSingle(row, description, table));
        }
Ejemplo n.º 2
0
        public List <T> ToList(DataTable table)
        {
            EntityDescription description = EntityDescriptionCache.Get(typeof(T));

            List <T> list = new List <T>(Initializer.Instance.DefaultEntityListLen);

            foreach (DataRow row in table.Rows)
            {
                T instance = GetSingle(row, description, table);
                list.Add(instance);
            }
            return(list);
        }
Ejemplo n.º 3
0
        private List <T> ToList(DbDataReader reader, EntityDescription description)
        {
            List <T> list = new List <T>(Initializer.Instance.DefaultEntityListLen);

            string[] names = DataExtensions.GetColumnNames(reader);

            while (reader.Read())
            {
                T instance = GetSingle(reader, description, names);
                list.Add(instance);
            }
            return(list);
        }
Ejemplo n.º 4
0
        public T ToSingle(DbDataReader reader)
        {
            if (reader.Read())
            {
                EntityDescription description = EntityDescriptionCache.Get(typeof(T));
                string[]          names       = DataExtensions.GetColumnNames(reader);

                return(GetSingle(reader, description, names));
            }
            else
            {
                return(default(T));
            }
        }
Ejemplo n.º 5
0
        public static EntityDescription Get(Type entityType)
        {
            // 先尝试从缓存中获取
            EntityDescription description = s_typeInfoDict[entityType.FullName] as EntityDescription;

            if (description == null)
            {
                // 创建类型的描述对象
                description = Create(entityType, true);

                // 添加到缓存字典
                s_typeInfoDict[entityType.FullName] = description;
            }

            return(description);
        }
Ejemplo n.º 6
0
        private T GetSingle(DbDataReader reader, EntityDescription description, string[] names)
        {
            T instance = (T)typeof(T).FastNew();

            for (int i = 0; i < names.Length; i++)
            {
                string name = names[i];

                ColumnInfo info;
                if (description.MemberDict.TryGetValue(name, out info))
                {
                    object val = reader.GetValue(i);
                    SetPropertyValue(info, instance, val, name);
                }
            }
            return(instance);
        }
Ejemplo n.º 7
0
        private T GetSingle(DataRow row, EntityDescription description, DataTable table)
        {
            T instance = (T)typeof(T).FastNew();

            for (int i = 0; i < table.Columns.Count; i++)
            {
                string name = table.Columns[i].ColumnName;

                ColumnInfo info;
                if (description.MemberDict.TryGetValue(name, out info))
                {
                    object val = row[i];
                    SetPropertyValue(info, instance, val, name);
                }
            }
            return(instance);
        }
Ejemplo n.º 8
0
        public List <T> ToList(DbDataReader reader)
        {
            EntityDescription description = EntityDescriptionCache.Get(typeof(T));

            return(ToList(reader, description));
        }