/// <summary> /// Tries to generate the Oftype or OfTypeOnly query view for a given entity set and type. /// Returns false if the view could not be generated. /// Possible reasons for failing are /// 1) Passing in OfTypeOnly on an abstract type /// 2) In user-specified query views mode a query for the given type is absent /// </summary> internal bool TryGetGeneratedViewOfType(MetadataWorkspace workspace, EntitySetBase entity, EntityTypeBase type, bool includeSubtypes, out GeneratedView generatedView) { OfTypeQVCacheKey key = new OfTypeQVCacheKey(entity, new Pair <EntityTypeBase, bool>(type, includeSubtypes)); generatedView = this.m_generatedViewOfTypeMemoizer.Evaluate(key); return(generatedView != null); }
/// <summary> /// Note: Null return value implies QV was not generated. /// </summary> /// <returns></returns> private GeneratedView SerializedGeneratedViewOfType(OfTypeQVCacheKey arg) { GeneratedView generatedView; //See if we have collected user-defined QueryView if (TryGetUserDefinedQueryViewOfType(arg, out generatedView)) { return(generatedView); } //Now we have to generate the type-specific view EntitySetBase entity = arg.First; EntityTypeBase type = arg.Second.First; bool includeSubtypes = arg.Second.Second; if (!TryGenerateQueryViewOfType(entity.EntityContainer, entity, type, includeSubtypes, out generatedView)) { generatedView = null; } return(generatedView); }
/// <summary> /// Note: Null return value implies QV was not generated. /// </summary> /// <returns> </returns> private GeneratedView SerializedGeneratedViewOfType(OfTypeQVCacheKey arg) { GeneratedView generatedView; //See if we have collected user-defined QueryView if (TryGetUserDefinedQueryViewOfType(arg, out generatedView)) { return generatedView; } //Now we have to generate the type-specific view var entity = arg.First; var type = arg.Second.First; var includeSubtypes = arg.Second.Second; if (!TryGenerateQueryViewOfType(entity.EntityContainer, entity, type, includeSubtypes, out generatedView)) { generatedView = null; } return generatedView; }
/// <summary> /// Tries to generate the Oftype or OfTypeOnly query view for a given entity set and type. /// Returns false if the view could not be generated. /// Possible reasons for failing are /// 1) Passing in OfTypeOnly on an abstract type /// 2) In user-specified query views mode a query for the given type is absent /// </summary> internal bool TryGetGeneratedViewOfType( EntitySetBase entity, EntityTypeBase type, bool includeSubtypes, out GeneratedView generatedView) { var key = new OfTypeQVCacheKey(entity, new Pair<EntityTypeBase, bool>(type, includeSubtypes)); generatedView = m_generatedViewOfTypeMemoizer.Evaluate(key); return (generatedView != null); }
/// <summary> /// Tries to generate the Oftype or OfTypeOnly query view for a given entity set and type. /// Returns false if the view could not be generated. /// Possible reasons for failing are /// 1) Passing in OfTypeOnly on an abstract type /// 2) In user-specified query views mode a query for the given type is absent /// </summary> internal bool TryGetGeneratedViewOfType(MetadataWorkspace workspace, EntitySetBase entity, EntityTypeBase type, bool includeSubtypes, out GeneratedView generatedView) { OfTypeQVCacheKey key = new OfTypeQVCacheKey(entity, new Pair<EntityTypeBase, bool>(type, includeSubtypes)); generatedView = this.m_generatedViewOfTypeMemoizer.Evaluate(key); return (generatedView != null); }