public override void ToXml(SqlElement sqlElement, XmlElement xmlParent) { base.ToXml(sqlElement, xmlParent); SelectListField selectListField = sqlElement as SelectListField; XmlElement xmlFieldAlias = SerializerUtil.AddElement(xmlParent, FIELDALIAS, selectListField.FieldAlias); }
/// <summary> /// 构造处理Select语句中查询字段部分 /// </summary> /// <param name="sql">Select语句</param> /// <param name="co">通用中间对象</param> /// <param name="domainObject">当前节点对象</param> /// <param name="dataObject">当前节点对应的数据对象</param> public void BuildQueryFieldList(SelectSqlStatement sql, DomainObject domainObject, DataObject dataObject) { var elements = domainObject.Elements.Where(i => i.ElementType != ElementType.Virtual || i.ElementType != ElementType.Reference); foreach (var element in elements) { if (string.IsNullOrEmpty(element.DataColumnID)) { continue; } var column = dataObject.Columns.FirstOrDefault(i => i.ID == element.DataColumnID); if (column == null) { throw new Exception(""); } var field = new SelectListField() { Table = sql.SqlBuildingInfo.CurrentSqlTable, IsUseAlias = true, IsUseFieldPrefix = true, FieldName = column.ColumnName, FieldAlias = element.Alias }; sql.SelectList.ChildCollection.Add(field); } //关联过来的字段不需要在此处理,在关联中处理 }
public override void FromXml(SqlElement sqlElement, XmlElement xmlParent, XmlNamespaceManager xnm) { base.FromXml(sqlElement, xmlParent, xnm); SelectListField selectListField = sqlElement as SelectListField; ParserUtil util = new ParserUtil(xnm); XmlElement xmlFieldAlias = util.Child(xmlParent, FIELDALIAS); selectListField.FieldAlias = xmlFieldAlias.InnerText; }
/// <summary> /// 根据SQLDOM元素类型初始化SQLDOM元素对象 /// </summary> /// <param name="sqlElementType">SQLDOM元素类型</param> /// <returns>SQLDOM元素对象</returns> public static SqlElement GetSQLElement(int sqlElementType) { SqlElement element = null; SqlElementType type = (SqlElementType)sqlElementType; switch (type) { case SqlElementType.InsertField: element = new InsertField(); break; case SqlElementType.SqlPrimaryKeyField: element = new SqlPrimaryKeyField(); break; case SqlElementType.SelectListField: element = new SelectListField(); break; case SqlElementType.UpdateField: element = new UpdateField(); break; case SqlElementType.From: element = new From(); break; case SqlElementType.FromItem: element = new FromItem(); break; case SqlElementType.JoinCondition: element = new JoinConditionStatement(); break; case SqlElementType.OrderByCondition: element = new ConditionStatement(); break; case SqlElementType.FilterCondition: element = new ConditionStatement(); break; case SqlElementType.UnKnown: break; } return(element); }