Exemple #1
0
        private static string GetSelectSql(DataModel mapping, ISqlBuilder builder, string[] ignorProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");
            ExceptionHelper.FalseThrow <ArgumentNullException>(builder != null, "builder");

            SelectSqlClauseBuilder selectBuilder = GetSelectSqlClauseBuilder(mapping, ignorProperties);

            return(string.Format("SELECT {0} FROM {1} ", selectBuilder.ToSqlString(builder), mapping.TableName));
        }
Exemple #2
0
        private static SelectSqlClauseBuilder GetSelectSqlClauseBuilder(DataModel mapping, string[] ignorProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");

            SelectSqlClauseBuilder builder = new SelectSqlClauseBuilder();

            FillSqlClauseBuilder(builder, mapping, ClauseBindingFlags.Select, new DoSelectClauseBuilder(DoSelectSqlClauseBuilder), ignorProperties);

            return(builder);
        }
        /// <summary>
        /// 根据对象生成SELECT相关的字段。其builder会生成Field1, Field2 AS Name...
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="graph"></param>
        /// <param name="mapping"></param>
        /// <param name="ignoreProperties"></param>
        /// <returns></returns>
        public static SelectSqlClauseBuilder GetSelectSqlClauseBuilder <T>(T graph, ORMappingItemCollection mapping, params string[] ignoreProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");
            ExceptionHelper.FalseThrow <ArgumentNullException>(mapping != null, "mapping");

            SelectSqlClauseBuilder builder = new SelectSqlClauseBuilder();

            FillSqlClauseBuilder(builder, graph, mapping, ClauseBindingFlags.Select,
                                 new DoSqlClauseBuilder <SelectSqlClauseBuilder, T>(DoSelectSqlClauseBuilder <SelectSqlClauseBuilder, T>), ignoreProperties);

            return(builder);
        }
Exemple #4
0
 private static void FillSqlClauseBuilder(SelectSqlClauseBuilder builder, DataModel mapping,
                                          ClauseBindingFlags bindingFlags, DoSelectClauseBuilder builderDelegate, params string[] ignorProperties)
 {
     mapping.Properties.ForEach(property =>
     {
         if (!ignorProperties.Contains(property.Name))
         {
             if (property.OutputMapping)
             {
                 builderDelegate(builder, property);
             }
         }
     });
 }
Exemple #5
0
 private static void DoSelectSqlClauseBuilder(SelectSqlClauseBuilder builder, DataProperty property)
 {
     builder.AppendItem(property.FieldName);
 }
        /// <summary>
        /// 根据对象生成SELECT相关的字段。其builder会生成Field1, Field2 AS Name...
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="graph"></param>
        /// <param name="mapping"></param>
        /// <param name="ignoreProperties"></param>
        /// <returns></returns>
        public static string GetSelectSql <T>(T graph, ORMappingItemCollection mapping, params string[] ignoreProperties)
        {
            SelectSqlClauseBuilder builder = GetSelectSqlClauseBuilder <T>(graph, mapping, ignoreProperties);

            return(builder.ToSqlString(TSqlBuilder.Instance));
        }