internal static void Load <T>(T clientObject, params Expression <Func <T, object> >[] retrievals) where T : ClientObject { ClientObjectCollection clientObjectCollection = clientObject as ClientObjectCollection; if (retrievals == null || retrievals.Length == 0) { clientObject.Query.SelectAllProperties(); if (clientObjectCollection != null) { clientObject.Query.ChildItemQuery.SelectAllProperties(); return; } } else { DataRetrieval.QueryProcessInfo queryProcessInfo = new DataRetrieval.QueryProcessInfo(); int num = 0; int num2 = 0; for (int i = 0; i < retrievals.Length; i++) { Expression <Func <T, object> > expression = retrievals[i]; DataRetrieval.QueryMethodAggregator queryMethodAggregator = new DataRetrieval.QueryMethodAggregator(expression); DataRetrieval.ProcessQueryExpression(clientObject.Query, clientObject, expression.Body, true, queryProcessInfo, queryMethodAggregator); queryMethodAggregator.Check(); if (queryMethodAggregator.Where > 0 || queryMethodAggregator.Take > 0) { num++; if (num > 1) { throw new InvalidQueryExpressionException(); } } num2 += queryMethodAggregator.Include; if (queryMethodAggregator.IsEmpty) { clientObject.Query.SelectAllProperties(); if (clientObjectCollection != null) { clientObject.Query.ChildItemQuery.SelectAllProperties(); } } } if (clientObjectCollection != null && num2 == 0) { clientObject.Query.ChildItemQuery.SelectAllProperties(); } queryProcessInfo.FinalProcess(); } }
public IEnumerable <T> LoadQuery <T>(ClientObjectCollection <T> clientObjects) where T : ClientObject { if (clientObjects == null) { throw new ArgumentNullException("clientObjects"); } ClientAction.CheckActionParameterInContext(this, clientObjects); ClientQueryableResult <T> clientQueryableResult = new ClientQueryableResult <T>(); ClientQueryInternal clientQueryInternal = new ClientQueryInternal(clientObjects, null, false, null); clientQueryInternal.ChildItemQuery.SelectAllProperties(); clientObjects.Context.AddQueryIdAndResultObject(clientQueryInternal.Id, clientQueryableResult); clientObjects.Context.AddQuery(clientQueryInternal); return(clientQueryableResult); }
public IEnumerable <T> LoadQuery <T>(IQueryable <T> clientObjects) where T : ClientObject { if (clientObjects == null) { throw new ArgumentNullException("clientObjects"); } ClientAction.CheckActionParameterInContext(this, clientObjects); ClientObjectCollection <T> clientObjectCollection = clientObjects as ClientObjectCollection <T>; if (clientObjectCollection != null) { return(this.LoadQuery <T>(clientObjectCollection)); } ClientQueryable <T> clientQueryable = clientObjects as ClientQueryable <T>; if (clientQueryable != null) { return(DataRetrieval.Retrieve <T>(clientQueryable)); } throw new NotSupportedException(); }
public EnumerableClientObjectCollection(ClientObjectCollection <T> collection) { this.m_collection = collection; }