private object GetRelatedData(GetMemberBinder binder, IAdapterWithRelation relatedAdapter) { object result; var related = relatedAdapter.FindRelated(_tableName, _data, binder.Name); var query = related as SimpleQuery; if (query != null) { query.SetDataStrategy(_database); result = query; } else { result = related is IDictionary<string, object> ? (object) new SimpleRecord(related as IDictionary<string, object>, binder.Name, _database) : new SimpleResultSet( ((IEnumerable<IDictionary<string, object>>) related).Select( dict => new SimpleRecord(dict, binder.Name, _database))); } return result; }
private object GetRelatedData(GetMemberBinder binder, IAdapterWithRelation relatedAdapter) { object result; var related = relatedAdapter.FindRelated(_tableName, _data, binder.Name); var query = related as SimpleQuery; if (query != null) { query.SetDataStrategy(_database); result = query; } else { result = related is IDictionary <string, object> ?(object)new SimpleRecord(related as IDictionary <string, object>, binder.Name, _database) : ((IEnumerable <IDictionary <string, object> >)related).Select( dict => new SimpleRecord(dict, binder.Name, _database)).ToList <dynamic>(); _data[binder.Name] = result; } return(result); }