protected override ResultOperatorBase CreateResultOperator(ClauseGenerationContext clauseGenerationContext) { var resultOperator = new FetchManyRequest(RelationMember); clauseGenerationContext.AddContextInfo(this, resultOperator); return(resultOperator); }
public void Apply_WithExistingFetchManyRequest() { var request = new FetchManyRequest(_node.RelationMember); QueryModel.ResultOperators.Add(request); _node.Apply(QueryModel, ClauseGenerationContext); Assert.That(QueryModel.ResultOperators.Count, Is.EqualTo(1)); Assert.That(QueryModel.ResultOperators[0], Is.SameAs(request)); Assert.That(ClauseGenerationContext.GetContextInfo(_node), Is.SameAs(QueryModel.ResultOperators[0])); }
protected override QueryModel ApplyNodeSpecificSemantics (QueryModel queryModel, ClauseGenerationContext clauseGenerationContext) { var previousFetchRequest = clauseGenerationContext.GetContextInfo (Source) as FetchRequestBase; if (previousFetchRequest == null) throw new ParserException ("ThenFetchMany must directly follow another Fetch request."); FetchRequestBase innerFetchRequest = new FetchManyRequest (RelationMember); innerFetchRequest = previousFetchRequest.GetOrAddInnerFetchRequest (innerFetchRequest); clauseGenerationContext.AddContextInfo (this, innerFetchRequest); return queryModel; }
public void Clone_WithInnerFetchRequests() { var innerRequest = new FetchManyRequest(_friendsMember); _friendsFetchRequest.GetOrAddInnerFetchRequest(innerRequest); var clone = _friendsFetchRequest.Clone(new CloneContext(new QuerySourceMapping())); var innerClones = ((FetchManyRequest)clone).InnerFetchRequests.ToArray(); Assert.That(innerClones.Length, Is.EqualTo(1)); Assert.That(innerClones[0], Is.Not.SameAs(innerRequest)); Assert.That(innerClones[0], Is.InstanceOf(typeof(FetchManyRequest))); Assert.That(innerClones[0].RelationMember, Is.SameAs(innerRequest.RelationMember)); }
protected override QueryModel ApplyNodeSpecificSemantics(QueryModel queryModel, ClauseGenerationContext clauseGenerationContext) { var previousFetchRequest = clauseGenerationContext.GetContextInfo(Source) as FetchRequestBase; if (previousFetchRequest == null) { throw new ParserException("ThenFetchMany must directly follow another Fetch request."); } FetchRequestBase innerFetchRequest = new FetchManyRequest(RelationMember); innerFetchRequest = previousFetchRequest.GetOrAddInnerFetchRequest(innerFetchRequest); clauseGenerationContext.AddContextInfo(this, innerFetchRequest); return(queryModel); }
public void SetUp() { _visitor = new TestFetchFilteringQueryModelVisitor(); _queryModel = ExpressionHelper.CreateQueryModel <Cook> (); _distinctResultOperator = new DistinctResultOperator(); _countResultOperator = new CountResultOperator(); _fetchOneRequest = new FetchOneRequest(typeof(Cook).GetProperty("Substitution")); _fetchManyRequest = new FetchManyRequest(typeof(Cook).GetProperty("Assistants")); _innerFetchManyRequest = new FetchManyRequest(typeof(Cook).GetProperty("Holidays")); _fetchOneRequest.GetOrAddInnerFetchRequest(_innerFetchManyRequest); _queryModel.ResultOperators.Add(_distinctResultOperator); _queryModel.ResultOperators.Add(_fetchOneRequest); _queryModel.ResultOperators.Add(_fetchManyRequest); _queryModel.ResultOperators.Add(_countResultOperator); }
protected override ResultOperatorBase CreateResultOperator (ClauseGenerationContext clauseGenerationContext) { var resultOperator = new FetchManyRequest (RelationMember); clauseGenerationContext.AddContextInfo (this, resultOperator); return resultOperator; }
public void SetUp() { _friendsMember = typeof(Cook).GetProperty("Assistants"); _friendsFetchRequest = new FetchManyRequest(_friendsMember); }