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); }
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); }