コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }