public override IDbCommand BuildForObject(PersistentObject obj)
        {
            AttributeMap attrMap;
            IDbCommand   cmd = m_ClassMap.PersistenceProvider.GetCommand();
            object       tmp;

            cmd.CommandText = this.SqlString;
            int size = ThisClassMap.GetSize();

            for (int i = 0; i < size; i++)
            {
                attrMap = ThisClassMap.GetAttributeMap(i);
                if (attrMap.Column.IsAutoValue)
                {
                    continue;
                }
                IDataParameter p = cmd.CreateParameter();
                p.ParameterName = "@" + attrMap.Name;
                p.DbType        = attrMap.Column.Type;
                tmp             = obj.GetAttributeValue(attrMap.Name);
                p.Value         = (tmp == null ? DBNull.Value : tmp);
                Assert.Verify(attrMap.Column.Size > p.Value.ToString().Length, Error.DataTooLong, p.ParameterName.ToString().Replace('@', ' ') + "column exceeds database length limit");
                cmd.Parameters.Add(p);
            }
            return(cmd);
        }
Ejemplo n.º 2
0
        public override IDbCommand BuildForObject(PersistentObject obj)
        {
            AttributeMap attrMap;
            IDbCommand   cmd = m_ClassMap.PersistenceProvider.GetCommand();

            cmd.CommandText = this.SqlString;
            for (int i = 0; i < ThisClassMap.GetKeySize(); i++)
            {
                attrMap = ThisClassMap.GetKeyAttributeMap(i);

                if (attrMap.Column.KeyType == ColumnKeyTypes.PrimaryKey && obj.GetAttributeValue(attrMap.Name) != null)
                {
                    IDataParameter p = cmd.CreateParameter();
                    p.DbType        = attrMap.Column.Type;
                    p.Value         = obj.GetAttributeValue(attrMap.Name);
                    p.ParameterName = "@" + attrMap.Column.Name;
                    cmd.Parameters.Add(p);
                }
            }
            return(cmd);
        }