Exemple #1
0
        public object Deserializer <T>(IDataReader reader)
        {
            var type = TypeMap.GetStandardType(typeof(T));

            switch (type)
            {
            case StandardType.Dictionary:
                return(DeserializerDictionary <T>(reader));

            case StandardType.Simple:
                return((T)DeserializerSimple(reader));

            case StandardType.Class:
                return(DeserializerClass <T>(reader));
            }

            return(null);
        }
Exemple #2
0
        public void Prepare(IDbCommand cmd, object param)
        {
            PrepareSql        = _sql;
            PrepareParameters = new List <IDbDataParameter>();
            if (param != null)
            {
                if (CommandType == CommandType.Text)
                {
                    var type = TypeMap.GetStandardType(param);
                    switch (type)
                    {
                    case StandardType.Dictionary:
                        SerializerDictionary(cmd, (IDictionary)param);
                        break;

                    case StandardType.Simple:
                        SerializerSimple(cmd, param);
                        break;

                    case StandardType.Class:
                        SerializerClass(cmd, param);
                        break;
                    }
                }
                else if (CommandType == CommandType.StoredProcedure)
                {
                    throw new SqlException("暂不支持存储过程");
                }
            }

            cmd.CommandText = PrepareSql;
            cmd.CommandType = CommandType;
            if (PrepareParameters != null && PrepareParameters.Count > 0)
            {
                PrepareParameters.ToList().ForEach(op => { cmd.Parameters.Add(op); });
            }
        }