Exemplo n.º 1
0
        /// <summary>
        /// 由XmlElement转换成SqlElement
        /// </summary>
        /// <param name="sqlElement">附加到的SqlElement</param>
        /// <param name="xmlParent">反序列化的XmlElement</param>
        /// <param name="xnm">命名空间</param>
        public override void FromXml(SqlElement sqlElement, XmlElement xmlParent, XmlNamespaceManager xnm)
        {
            base.FromXml(sqlElement, xmlParent, xnm);

            SubQuerySqlStatement selectSql = sqlElement as SubQuerySqlStatement;
            ParserUtil           util      = new ParserUtil(xnm);

            XmlElement xmlSelectList       = util.Child(xmlParent, SelectFieldListStatement.SELECTLISTSTATEMENT);
            XmlElement xmlFrom             = util.Child(xmlParent, From.FROM);
            XmlElement xmlJoinCondition    = util.Child(xmlParent, JoinConditionStatement.JOINCONDITIONSTATEMENT);
            XmlElement xmlFilterCondition  = util.Child(xmlParent, FILTERCONDITION);
            XmlElement xmlOrderByCondition = util.Child(xmlParent, ORDERBYCONDITION);

            selectSql.SelectList.FromXml(selectSql.SelectList, xmlSelectList, xnm);
            selectSql.From.FromXml(selectSql.From, xmlFrom, xnm);
            selectSql.JoinCondition.FromXml(selectSql.JoinCondition, xmlJoinCondition, xnm);
            selectSql.FilterCondition.FromXml(selectSql.FilterCondition, xmlFilterCondition, xnm);
            selectSql.OrderByCondition.FromXml(selectSql.OrderByCondition, xmlOrderByCondition, xnm);

            /*
             * MainFromItem只序列化,不反序列化。
             * 其反序列化操作已包含在Froms的集合中,直接从集合中取即可。
             * */
            selectSql.mainFromItem = this.From.ChildCollection[0] as FromItem;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 转换成XmlElement
        /// </summary>
        /// <param name="sqlElement">要转换的对象</param>
        /// <param name="xmlParent">附加到的XmlElement</param>
        public override void ToXml(SqlElement sqlElement, XmlElement xmlParent)
        {
            base.ToXml(sqlElement, xmlParent);

            SubQuerySqlStatement selectSql     = sqlElement as SubQuerySqlStatement;
            XmlElement           xmlSelectList = SerializerUtil.AddElement(xmlParent, SelectFieldListStatement.SELECTLISTSTATEMENT);

            selectSql.SelectList.ToXml(selectSql.SelectList, xmlSelectList);
            XmlElement xmlFrom = SerializerUtil.AddElement(xmlParent, From.FROM);

            selectSql.From.ToXml(selectSql.From, xmlFrom);
            XmlElement xmlJoinCondition = SerializerUtil.AddElement(xmlParent, JoinConditionStatement.JOINCONDITIONSTATEMENT);

            selectSql.JoinCondition.ToXml(selectSql.JoinCondition, xmlJoinCondition);
            XmlElement xmlFilterCondition = SerializerUtil.AddElement(xmlParent, FILTERCONDITION);

            selectSql.FilterCondition.ToXml(selectSql.FilterCondition, xmlFilterCondition);
            XmlElement xmlOrderByCondition = SerializerUtil.AddElement(xmlParent, ORDERBYCONDITION);

            selectSql.OrderByCondition.ToXml(selectSql.OrderByCondition, xmlOrderByCondition);

            /*
             * MainFromItem只序列化,不反序列化。
             * 其反序列化操作已包含在Froms的集合中,直接从集合中取即可。
             * */
            XmlElement xmlMainFromItem = SerializerUtil.AddElement(xmlParent, MAINFROMITEM);

            selectSql.MainFromItem.ToXml(selectSql.MainFromItem, xmlMainFromItem);
        }