通过EntityFieldInfo在select中添加指定字段项 - AddISelectItemWithEntityFieldInfo

2017-02-19 12:19:03  访问(1725) 赞(0) 踩(0)


        /// <summary>
        /// <para>通过EntityFieldInfo在select中添加指定字段项 +</para>
        /// <para>select如果不做设定,默认是select全部字段的</para>
        /// <para>添加EntityFieldInfo后,就指定select该字段</para>
        /// </summary>
        /// <param name="em"></param>
        /// <param name="selectName"></param>
        /// <param name="_info"></param>
        public void AddISelectItemWithEntityFieldInfo
            (
                SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn em,
                string selectName,
                EntityFieldInfo _info
            )
        {
            if (m_ListISelectItem == null)
                m_ListISelectItem = new List<ISelectItem>();

            if (em == SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn.无)
            {
                m_ListISelectItem.Add
                   (
                       new DataColumnSelectItem
                           (
                                _info
                           )
                   );
                return;
            }

            SqlSelectAssist sa = new SqlSelectAssist();
            sa.selectName = selectName;
            ScriptLinkSqlFunction scriptFn = null;

            switch (em)
            {
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn.无:
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Sum:
                    scriptFn = new ScriptLinkSqlFunction("sum(", ")");
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Min:
                    scriptFn = new ScriptLinkSqlFunction("min(", ")"); 
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Max:
                    scriptFn = new ScriptLinkSqlFunction("max(", ")"); 
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Avg:
                    scriptFn = new ScriptLinkSqlFunction("avg(", ")"); 
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Count:
                    scriptFn = new ScriptLinkSqlFunction("count(", ")"); 
                    break;
                case SlowX.Core.Enums.SqlCommonFn.EmSqlCommonFn._Distinct:
                    scriptFn = new ScriptLinkSqlFunction("distinct(", ")");
                    break;
                default:

                    throw new Exception
                        (
                            "方法:"
                            + MethodBase.GetCurrentMethod().ReflectedType.FullName
                            + " "
                            + MethodBase.GetCurrentMethod().ToString()
                            + " 发生异常:"
                            + "枚举("
                            + em.GetType().FullName
                            + "."
                            + em.ToString()
                            + ")未知,对应的代码尚未实现。"
                        );

            }

            if (scriptFn != null)
                sa.AddBaseSqlFunction(scriptFn);


            m_ListISelectItem.Add
               (
                   new DataColumnSelectItem
                       (
                           sa,
                            _info
                       )
               );
        }


标签:通过EntityFieldInfo在select中添加指定字段项 - AddISelectItemWithEntityFieldInfo 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)