public static async Task <List <DbParameter> > UseDbParameterGenerator <TParameter>(this object sender) where TParameter : DbParameter, new ()
        {
            List <DbParameter> _dbParameters = new List <DbParameter>();

            try
            {
                _dbParameters = await Task.Run(() => {
                    List <DbParameter> _list          = new List <DbParameter>();
                    PropertyInfo[] _paramPropertyInfo = sender.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
                    foreach (PropertyInfo item in _paramPropertyInfo)
                    {
                        SqlDataTypeAttribute _sqlDataTypeAttribute = (SqlDataTypeAttribute)item.GetCustomAttribute(typeof(SqlDataTypeAttribute));
                        ParameterAttribute _parameterAttribute     = (ParameterAttribute)item.GetCustomAttribute(typeof(ParameterAttribute));
                        var _value = item.GetValue(sender);
                        DbParameter _dbParameter   = (DbParameter) new TParameter();
                        _dbParameter.DbType        = _sqlDataTypeAttribute.SqlDbType;
                        _dbParameter.ParameterName = _parameterAttribute.value;
                        _dbParameter.Value         = _value == null ? DBNull.Value : _value;
                        _list.Add(_dbParameter);
                    }
                    return(_list);
                });

                return(_dbParameters);
            }
            catch (Exception ex)
            {
                throw new Exception("");
            }
        }
コード例 #2
0
        public async Task <List <DbParameter> > DbParametersListGeneratorAsync(object model, DbParameter dbParameter)
        {
            List <DbParameter> _dbParameters = new List <DbParameter>();

            try
            {
                _dbParameters = await Task.Run(() => {
                    List <DbParameter> _list          = new List <DbParameter>();
                    PropertyInfo[] _paramPropertyInfo = model.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
                    foreach (PropertyInfo item in _paramPropertyInfo)
                    {
                        SqlDataTypeAttribute _sqlDataTypeAttribute = (SqlDataTypeAttribute)item.GetCustomAttribute(typeof(SqlDataTypeAttribute));
                        ParameterAttribute _parameterAttribute     = (ParameterAttribute)item.GetCustomAttribute(typeof(ParameterAttribute));
                        var _value = item.GetValue(model);
                        DbParameter _dbParameter   = (DbParameter) new TParameter();
                        _dbParameter.DbType        = _sqlDataTypeAttribute.SqlDbType;
                        _dbParameter.ParameterName = _parameterAttribute.value;
                        _dbParameter.Value         = _value == null? DBNull.Value : _value;
                        _list.Add(_dbParameter);
                    }
                    return(_list);
                });
            }
            catch (Exception ex)
            {
                NlogLoggerClient _client = new NlogLoggerClient(new NLogFileLogger(_classNameSpace));
                await _client.ActionLoggerAsync(LogginLevels.LoggingLevels.Error, MethodBase.GetCurrentMethod().Name, ex.Message, ex);

                throw new Exception(ex.Message, ex);
            }
            return(_dbParameters);
        }