Esempio n. 1
0
        // 执行SQL 语句,并返回 <see cref="IEnumerable"/> 对象
        List <T> ExecuteList <T>(IDbCommand cmd, DbCommandDefinition_Select definition)
        {
            IDataReader reader  = null;
            List <T>    objList = new List <T>();

            try
            {
                reader = this.ExecuteReader(cmd);
                TypeDeserializer deserializer = new TypeDeserializer(reader, definition);
                objList = deserializer.Deserialize <T>();
            }
            finally
            {
                if (reader != null)
                {
                    reader.Dispose();
                }
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                this.InternalDispose();
            }

            return(objList);
        }
Esempio n. 2
0
        // 执行SQL 语句,并返回单个实体对象
        async Task <T> ExecuteAsync <T>(IDbCommand cmd, DbCommandDefinition_Select definition)
        {
            IDataReader   reader = null;
            IDbConnection conn   = null;

            try
            {
                reader = await this.ExecuteReaderAsync(cmd);

                conn = cmd != null ? cmd.Connection : null;
                TypeDeserializer deserializer = new TypeDeserializer(reader, definition);
                List <T>         result       = await deserializer.DeserializeAsync <T>();

                return(result.FirstOrDefault());
            }
            finally
            {
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (reader != null)
                {
                    reader.Dispose();
                }
                this.InternalDispose();
            }
        }
Esempio n. 3
0
        // 执行SQL 语句,并返回单个实体对象
        T Execute <T>(IDbCommand cmd, DbCommandDefinition_Select definition)
        {
            IDataReader reader = null;

            try
            {
                reader = this.ExecuteReader(cmd);
                TypeDeserializer deserializer = new TypeDeserializer(reader, definition);
                List <T>         result       = deserializer.Deserialize <T>();
                return(result.FirstOrDefault());
            }
            finally
            {
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (reader != null)
                {
                    reader.Dispose();
                }
                this.InternalDispose();
            }
        }
Esempio n. 4
0
 /// <summary>
 /// 实体化 <see cref="TypeDeserializer"/> 类的新实例
 /// </summary>
 /// <param name="reader">DataReader</param>
 /// <param name="definition">命令描述对象,用于解析实体的外键</param>
 public TypeDeserializer(IDataReader reader, DbCommandDefinition_Select definition)
 {
     _definition = definition;
     _reader     = reader;
 }