示例#1
0
 private static void ChangeNamingOf(SqlQuery query, SqlQueryParameterNaming newNaming)
 {
     try {
         typeof(SqlQuery).GetMethod("ChangeNaming", BindingFlags.Instance | BindingFlags.NonPublic)
         .Invoke(query, new object[] { newNaming });
     } catch (TargetInvocationException ex) {
         throw ex.InnerException;
     }
 }
示例#2
0
        /// <summary>
        /// Constructs the query object with the given command
        /// text and a given parameter naming convention.
        /// </summary>
        /// <param name="text">The text of the command to be executed</param>
        /// <param name="naming">The naming convention of the parameters in the query</param>
        /// <exception cref="ArgumentNullException">If the provided
        /// <paramref name="text"/> is <c>null</c> or empty.</exception>
        public SqlQuery(string text, SqlQueryParameterNaming naming)
        {
            if (String.IsNullOrEmpty(text))
            {
                throw new ArgumentNullException(nameof(text));
            }

            Text            = text;
            ParameterNaming = naming;
            Parameters      = new QueryParameterCollection(this);
        }
示例#3
0
        public static void ChangeStyleWithInvalidParameters(SqlQueryParameterNaming newNaming, string paramName1, string paramName2)
        {
            var query = new SqlQuery($"SELECT * FROM a WHERE a.col1 = {paramName1} AND a.col2 = {paramName2}");

            query.Parameters.Add(new SqlQueryParameter(paramName1, PrimitiveTypes.String(), new SqlString($"val of {paramName1}")));
            query.Parameters.Add(new SqlQueryParameter(paramName2, PrimitiveTypes.Boolean(), SqlBoolean.False));

            Assert.Equal(SqlQueryParameterNaming.Default, query.ParameterNaming);

            Assert.Throws <ArgumentException>(() => ChangeNamingOf(query, newNaming));
        }
示例#4
0
        internal void ChangeNaming(SqlQueryParameterNaming naming)
        {
            if (ParameterNaming != SqlQueryParameterNaming.Default)
            {
                throw new InvalidOperationException("Cannot change the parameter style if it was not set to default");
            }
            if (naming == SqlQueryParameterNaming.Default)
            {
                throw new ArgumentException("Cannot change the parameter style of a query to default");
            }

            ParameterNaming = naming;
            ((QueryParameterCollection)Parameters).ValidateAll();
        }
示例#5
0
        public static void AddInvalidStyledQueryParameter(SqlQueryParameterNaming naming, string paramName)
        {
            var query = new SqlQuery($"INSERT INTO a (col1) VALUES ({paramName})", naming);

            Assert.Throws <ArgumentException>(() => query.Parameters.Add(new SqlQueryParameter(paramName, PrimitiveTypes.Boolean(), SqlBoolean.True)));
        }
示例#6
0
        public static void ChangeStyleOfNonDefault(SqlQueryParameterNaming naming)
        {
            var query = new SqlQuery("EXECUTE sp_insertData", naming);

            Assert.Throws <InvalidOperationException>(() => ChangeNamingOf(query, naming));
        }