/// <summary> /// Call this method from the constructor of a class derived from <see cref="DbConfiguration" /> to set /// an implementation of <see cref="IViewAssemblyCache" /> which will be used to find and cache the list /// of assemblies that contain pre-generated views. /// </summary> /// <remarks> /// This method is provided as a convenient and discoverable way to add configuration to the Entity Framework. /// Internally it works in the same way as using AddDependencyResolver to add an appropriate resolver for /// <see cref="IViewAssemblyCache" />. This means that, if desired, the same functionality can be achieved using /// a custom resolver or a resolver backed by an Inversion-of-Control container. /// </remarks> /// <param name="cache"> The cache implementation to use. </param> protected internal void SetViewAssemblyCache(IViewAssemblyCache cache) { Check.NotNull(cache, "cache"); _internalConfiguration.CheckNotLocked("SetViewAssemblyCache"); _internalConfiguration.RegisterSingleton(cache); }
internal ObjectItemCollection(IViewAssemblyCache viewAssemblyCache, KnownAssembliesSet knownAssembliesSet = null) : base(DataSpace.OSpace) { _viewAssemblyCache = viewAssemblyCache ?? DbConfiguration.GetService <IViewAssemblyCache>(); _knownAssemblies = knownAssembliesSet ?? new KnownAssembliesSet(); foreach (var type in ClrProviderManifest.Instance.GetStoreTypes()) { AddInternal(type); _primitiveTypeMaps.Add(type); } }
internal ViewDictionary( StorageMappingItemCollection storageMappingItemCollection, out Dictionary<EntitySetBase, GeneratedView> userDefinedQueryViewsDict, out Dictionary<OfTypeQVCacheKey, GeneratedView> userDefinedQueryViewsOfTypeDict, IViewAssemblyCache viewAssemblyCache = null) { _viewAssemblyCache = viewAssemblyCache ?? DbConfiguration.GetService<IViewAssemblyCache>(); _storageMappingItemCollection = storageMappingItemCollection; _generatedViewsMemoizer = new Memoizer<EntityContainer, Dictionary<EntitySetBase, GeneratedView>>(SerializedGetGeneratedViews, null); _generatedViewOfTypeMemoizer = new Memoizer<OfTypeQVCacheKey, GeneratedView>( SerializedGeneratedViewOfType, OfTypeQVCacheKey.PairComparer.Instance); userDefinedQueryViewsDict = new Dictionary<EntitySetBase, GeneratedView>(EqualityComparer<EntitySetBase>.Default); userDefinedQueryViewsOfTypeDict = new Dictionary<OfTypeQVCacheKey, GeneratedView>(OfTypeQVCacheKey.PairComparer.Instance); _tryGetUserDefinedQueryView = userDefinedQueryViewsDict.TryGetValue; _tryGetUserDefinedQueryViewOfType = userDefinedQueryViewsOfTypeDict.TryGetValue; }