/// <summary> /// Save a query model result for later lookup. /// </summary> /// <param name="queryModel"></param> /// <param name="result"></param> /// <returns></returns> /// <remarks>Cache any QueryReferences that have been looked up in addtion to the result so we know when to /// invalidate this.</remarks> public IVariableScopeHolder Add(Remotion.Linq.QueryModel queryModel, Expression result) { var scope = new CQReplacementExpression(this, queryModel, _queryModelCache.ContainsKey(queryModel) ? _queryModelCache[queryModel] : null); var v = new QueryModelCacheLine() { _value = result, _referencedQS = _QSReferencedSet.ToArray() }; _QSReferencedSet.Clear(); AddInternal(queryModel, v); return(scope); }
/// <summary> /// Save a query model result for later lookup. /// </summary> /// <param name="queryModel"></param> /// <param name="result"></param> /// <returns></returns> /// <remarks>Cache any QueryReferences that have been looked up in addtion to the result so we know when to /// invalidate this.</remarks> public IVariableScopeHolder Add(Remotion.Linq.QueryModel queryModel, Expression result) { var scope = new CQReplacementExpression(this, queryModel, _queryModelCache.ContainsKey(queryModel) ? _queryModelCache[queryModel] : null); var v = new QueryModelCacheLine() { _value = result, _referencedQS = _QSReferencedSet.ToArray() }; _QSReferencedSet.Clear(); AddInternal(queryModel, v); return scope; }