示例#1
0
        private void UpdateTranslate(IModel valueObject, List <OracleParameter> parameters)
        {
            foreach (PropertyInfo prop in valueObject.GetType().GetProperties())
            {
                if (prop.GetValue(valueObject, null) != null)
                {
                    if (CheckBrowsable(valueObject, prop.Name))
                    {
                        //SqlStringBuilder.Append(prop.Name.ToUpper() + " = :" + prop.Name.ToUpper() + ",");
                        SqlString.Append(prop.Name.ToUpper() + " = " + DbSymbolize + prop.Name.ToUpper() + ",");

                        var propertyType = prop.PropertyType;

                        if (prop.PropertyType.IsGenericType &&
                            prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable <>))
                        {
                            propertyType = prop.PropertyType.GetGenericArguments()[0];
                        }

                        //如果obj value非null但長度為0, 代表需為NULL, 以DBnull.Value傳值
                        parameters.Add(new OracleParameter(DbSymbolize + prop.Name.ToUpper(), (OracleDbType)GetDbType(propertyType.Name), prop.GetValue(valueObject, null).ToString().Length > 0 ? prop.GetValue(valueObject, null) : DBNull.Value, ParameterDirection.Input));
                    }
                }
            }
            SqlString.Remove(SqlString.Length - 1, 1);
        }