public static MultipleResultMap LoadMultipleResultMap(XmlElement xmlNode, IList <ResultMap> resultMaps) { MultipleResultMap multipleResultMap = new MultipleResultMap { Id = xmlNode.Attributes["Id"].Value, Results = new List <Result> { } }; int resultIndex = 0; foreach (XmlNode childNode in xmlNode.ChildNodes) { var result = new Result { Index = resultIndex, Property = childNode.Attributes["Property"]?.Value, MapId = childNode.Attributes["MapId"]?.Value, }; var indexStr = childNode.Attributes["Index"]?.Value; if (int.TryParse(indexStr, out int index)) { result.Index = index; } if (!String.IsNullOrEmpty(result.MapId)) { var resultMap = resultMaps.FirstOrDefault(m => m.Id == result.MapId); result.Map = resultMap ?? throw new SmartSqlException($"Can not find ResultMap.Id:{result.MapId}"); } multipleResultMap.Results.Add(result); resultIndex++; } return(multipleResultMap); }
public static MultipleResultMap LoadMultipleResultMap(XmlElement xmlNode, SmartSqlMap sqlMap) { MultipleResultMap multipleResultMap = new MultipleResultMap { Id = xmlNode.Attributes["Id"].Value, Results = new List <Result> { } }; if (multipleResultMap.Id.IndexOf('.') < 0) { multipleResultMap.Id = $"{sqlMap.Scope}.{multipleResultMap.Id}"; } int resultIndex = 0; foreach (XmlNode childNode in xmlNode.ChildNodes) { var result = new Result { Index = resultIndex, Property = childNode.Attributes["Property"]?.Value, MapId = childNode.Attributes["MapId"]?.Value, }; if (result.MapId?.IndexOf('.') < 0) { result.MapId = $"{sqlMap.Scope}.{result.MapId}"; } var indexStr = childNode.Attributes["Index"]?.Value; if (int.TryParse(indexStr, out int index)) { result.Index = index; } if (childNode.Name == "Root") { multipleResultMap.Root = result; } else { multipleResultMap.Results.Add(result); } resultIndex++; } return(multipleResultMap); }