/// <summary> /// Generate constraint description for a normal class property /// </summary> /// <param name="classProp"></param> /// <returns></returns> public static string SchemaConstraintsClassProp(ClassProperty classProp) { if (classProp.ConstraintInfo.Length == 0) { return ""; } string line = classProp.TableAttr + ": "; if (classProp.Type != "") { line += "It's type is " + classProp.Type + ". "; } if (classProp.ConstraintInfo != "") { line += classProp.ConstraintInfo + "."; } return line; }
/// <summary> /// Given the mapping file name, /// Return all properties (excluding pk) /// </summary> /// <param name="classEle"></param> /// <param name="classFullName"></param> /// <param name="tableName"></param> /// <returns></returns> private List<ClassProperty> _GetMappingFilePropertyList(XElement classEle, string classFullName, string tableName) { List<ClassProperty> propList = new List<ClassProperty>(); foreach (var subEle in classEle.Elements("property")) { string classProp = subEle.Attributes("name").SingleOrDefault().Value; //string tableProp = subEle.Attributes("column").SingleOrDefault().Value; string tableProp = classProp; string constraitInfo = ""; if (subEle.Attributes("column").Count() != 0) { tableProp = subEle.Attributes("column").SingleOrDefault().Value; constraitInfo = DBConstraintExtractorXML.GetConstraintInfo(subEle); } else { //tableProp = subEle.Descendants("column").SingleOrDefault().Attributes("name").SingleOrDefault().Value; XElement colEle = subEle.Descendants("column").SingleOrDefault(); if (colEle != null) { XAttribute colNameAttr = colEle.Attributes("name").SingleOrDefault(); if (colNameAttr != null) { tableProp = colNameAttr.Value; } constraitInfo = DBConstraintExtractorXML.GetConstraintInfo(colEle); } } string propType = ""; XAttribute propAttr = subEle.Attributes("type").SingleOrDefault(); if (propAttr != null) { propType = propAttr.Value; } ClassProperty prop = new ClassProperty(classFullName + "." + classProp, tableName + "." + tableProp, propType, constraitInfo); propList.Add(prop); } return propList; }