コード例 #1
0
 // AsFieldAndParameter
 internal static string AsFieldAndParameter(this QueryField queryField)
 {
     if (queryField.Operation == Operation.Equal && queryField.Parameter.Value == null)
     {
         return($"{queryField.AsField()} IS NULL");
     }
     else if (queryField.Operation == Operation.NotEqual && queryField.Parameter.Value == null)
     {
         return($"{queryField.AsField()} IS NOT NULL");
     }
     else
     {
         var operationText = queryField.GetOperationText();
         if (queryField.Operation == Operation.Between || queryField.Operation == Operation.NotBetween)
         {
             return($"{queryField.AsField()} {operationText} {queryField.AsBetweenParameter()}");
         }
         else if (queryField.Operation == Operation.In || queryField.Operation == Operation.NotIn)
         {
             return($"{queryField.AsField()} {operationText} {queryField.AsInParameter()}");
         }
         else
         {
             return($"{queryField.AsField()} {operationText} {queryField.AsParameter()}");
         }
     }
 }
コード例 #2
0
 // AsFieldAndParameter
 internal static string AsFieldAndParameter(this QueryField queryField, int index = 0)
 {
     if (queryField.Operation == Operation.Equal && queryField.Parameter.Value == null)
     {
         return(string.Concat(queryField.AsField(), " IS NULL"));
     }
     else if (queryField.Operation == Operation.NotEqual && queryField.Parameter.Value == null)
     {
         return(string.Concat(queryField.AsField(), " IS NOT NULL"));
     }
     else
     {
         if (queryField.Operation == Operation.Between || queryField.Operation == Operation.NotBetween)
         {
             return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsBetweenParameter(index)));
         }
         else if (queryField.Operation == Operation.In || queryField.Operation == Operation.NotIn)
         {
             return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsInParameter(index)));
         }
         else
         {
             return(string.Concat(queryField.AsField(), " ", queryField.GetOperationText(), " ", queryField.AsParameter(index)));
         }
     }
 }
コード例 #3
0
ファイル: QueryFieldExtension.cs プロジェクト: aTiKhan/RepoDb
        /// <summary>
        ///
        /// </summary>
        /// <param name="queryField"></param>
        /// <param name="index"></param>
        /// <param name="dbSetting"></param>
        /// <returns></returns>
        internal static string AsFieldAndParameterForIn(this QueryField queryField,
                                                        int index,
                                                        IDbSetting dbSetting)
        {
            var enumerable = (queryField.Parameter.Value as System.Collections.IEnumerable)?.WithType <object>();

            if (enumerable?.Any() != true)
            {
                return("1 = 0");
            }
            else
            {
                return(string.Concat(queryField.AsField(dbSetting), " ", queryField.Operation.GetText(), " ", queryField.AsInParameter(index, dbSetting)));
            }
        }
コード例 #4
0
        internal static string AsFieldAndParameterForIn(this QueryField queryField,
                                                        int index,
                                                        IDbSetting dbSetting)
        {
            var array = queryField.Parameter.Value?.AsArray();

            if (array == null || array?.Length == 0)
            {
                return("1 = 0");
            }
            else
            {
                return(string.Concat(queryField.AsField(dbSetting), " ", queryField.GetOperationText(), " ", queryField.AsInParameter(index, dbSetting)));
            }
        }