public void Verify_that_opening_connection_does_not_create_new_MetadataWorkspace() { var connection = new EntityConnection(connectionString); var workspace = connection.GetMetadataWorkspace(); connection.Open(); Assert.Same(workspace, connection.GetMetadataWorkspace()); }
public void Verify_that_metadata_is_the_same_for_two_workspaces_created_from_two_entity_connections_with_same_connection_strings() { var connection1 = new EntityConnection(connectionString); var connection2 = new EntityConnection(connectionString); var workspace1 = connection1.GetMetadataWorkspace(); var workspace2 = connection2.GetMetadataWorkspace(); Assert.Same(workspace1.GetItemCollection(DataSpace.CSpace), workspace2.GetItemCollection(DataSpace.CSpace)); Assert.Same(workspace1.GetItemCollection(DataSpace.SSpace), workspace2.GetItemCollection(DataSpace.SSpace)); Assert.Same(workspace1.GetItemCollection(DataSpace.CSSpace), workspace2.GetItemCollection(DataSpace.CSSpace)); }
Verify_that_conceptual_metadata_is_the_same_for_two_workspaces_created_from_two_entity_connections_with_reordered_metadata_in_connection_strings () { var connectionString2 = string.Format( @"metadata=res://EntityFramework.FunctionalTests.Transitional/System.Data.Entity.Metadata.MetadataCachingModel.msl|res://EntityFramework.FunctionalTests.Transitional/System.Data.Entity.Metadata.MetadataCachingModel.ssdl|res://EntityFramework.FunctionalTests.Transitional/System.Data.Entity.Metadata.MetadataCachingModel.csdl;provider=System.Data.SqlClient;provider connection string=""{0}""", ModelHelpers.SimpleConnectionString("tempdb")); var connection1 = new EntityConnection(connectionString); var connection2 = new EntityConnection(connectionString2); var workspace1 = connection1.GetMetadataWorkspace(); var workspace2 = connection2.GetMetadataWorkspace(); Assert.Same(workspace1.GetItemCollection(DataSpace.CSpace), workspace2.GetItemCollection(DataSpace.CSpace)); }
internal static DbSpatialServices GetSpatialServices(IDbDependencyResolver resolver, EntityConnection connection) { DebugCheck.NotNull(resolver); DebugCheck.NotNull(connection); var storeItemCollection = (StoreItemCollection)connection.GetMetadataWorkspace().GetItemCollection(DataSpace.SSpace); var key = new DbProviderInfo( storeItemCollection.StoreProviderInvariantName, storeItemCollection.StoreProviderManifestToken); return GetSpatialServices(resolver, key, () => GetProviderServices(connection.StoreConnection)); }
private void MetadataCachingWithGarbageCollectionTemplate(Action garbageCollection) { MetadataWorkspace.ClearCache(); var weakReferences = new WeakReference[3]; // load metadata using (var connection1 = new EntityConnection(connectionString)) { connection1.Open(); weakReferences[0] = new WeakReference(connection1.GetMetadataWorkspace().GetItemCollection(DataSpace.CSpace)); weakReferences[1] = new WeakReference(connection1.GetMetadataWorkspace().GetItemCollection(DataSpace.SSpace)); weakReferences[2] = new WeakReference(connection1.GetMetadataWorkspace().GetItemCollection(DataSpace.CSSpace)); } // perform necessary garbage collection steps garbageCollection(); // verify that metadata was cached using (var connection2 = new EntityConnection(connectionString)) { connection2.Open(); Assert.Same(weakReferences[0].Target, connection2.GetMetadataWorkspace().GetItemCollection(DataSpace.CSpace)); Assert.Same(weakReferences[1].Target, connection2.GetMetadataWorkspace().GetItemCollection(DataSpace.SSpace)); Assert.Same(weakReferences[2].Target, connection2.GetMetadataWorkspace().GetItemCollection(DataSpace.CSSpace)); } }
private static object GetSpatialValueFromProviderValue( object spatialValue, PrimitiveType parameterType, EntityConnection connection) { var providerServices = DbProviderServices.GetProviderServices(connection.StoreConnection); var storeItemCollection = (StoreItemCollection)connection.GetMetadataWorkspace().GetItemCollection(DataSpace.SSpace); var spatialServices = providerServices.GetSpatialServices(storeItemCollection.StoreProviderManifestToken); if (Helper.IsGeographicType(parameterType)) { return spatialServices.GeographyFromProviderValue(spatialValue); } else { Debug.Assert(Helper.IsGeometricType(parameterType)); return spatialServices.GeometryFromProviderValue(spatialValue); } }