private List <ResolveItem> createResolveItems(QueryResultContext context, TableMetaData table) { var ls = new List <ResolveItem>(); // iterate all column in result table foreach (var item in context.ResultTable.Columns.Values) { var segs = item.Name.Splite1WithCount("_"); //may be self column or join table 's column if (segs.Count == 1) { //self if (table.Columns.ContainsKey(item.Name)) { ls.Add(new ResolveItem() { Parent = "", PropertyName = table.Columns[item.Name].PorpertyName, Setter = table.Columns[item.Name].Setter, PropertyType = table.Columns[item.Name].RelatedType, ColumnIndex = item.Index }); } //search join table else { var result = resolveJoinTable(item, table, ""); if (result != null) { ls.Add(result); } } } else { //search self join columns var result = resolveJoinColumn(item, table, segs.ToArray(), ""); if (result != null) { ls.Add(result); continue; } // search join table join column result = resolveJoinTableJoinColumn(item, table, segs.ToArray(), ""); if (ls != null) { ls.Add(result); } } } return(ls); }
internal DefaultCursor(QueryResultContext context) { _context = context; }
public SearchContext(TypeContext typeContext, PagedSearchRequest request, QueryContext queryContext, QueryResultContext queryResultContext) { this.TargetTypeContext = typeContext; this.Request = request; this.QueryContext = queryContext; this.QueryResultContext = queryResultContext; }