public void Simple_scan_with_Enum() { var entitySet = workspace.GetEntityContainer("MessageContainer", DataSpace.CSpace).GetEntitySetByName("MessageSet", false); var query = entitySet.Scan(); var expectedSql = "SELECT [Extent1].[Id] AS [Id], [Extent1].[MessageType] AS [MessageType]FROM [dbo].[Message] AS [Extent1]"; QueryTestHelpers.VerifyQuery(query, workspace, expectedSql); }
public string GetEntitySetName(string entityTypeName) { var container = MetadataWorkspace.GetEntityContainer(DefaultContainerName, DataSpace.CSpace); string entitySetName = (from meta in container.BaseEntitySets where meta.ElementType.Name == entityTypeName select meta.Name).FirstOrDefault(); return(entitySetName); }
/// <summary>Gets the entity set for this entity key from the given metadata workspace.</summary> /// <returns> /// The <see cref="T:System.Data.Entity.Core.Metadata.Edm.EntitySet" /> for the entity key. /// </returns> /// <param name="metadataWorkspace">The metadata workspace that contains the entity.</param> /// <exception cref="T:System.ArgumentException">The entity set could not be located in the specified metadata workspace.</exception> public EntitySet GetEntitySet(MetadataWorkspace metadataWorkspace) { Check.NotNull <MetadataWorkspace>(metadataWorkspace, nameof(metadataWorkspace)); if (string.IsNullOrEmpty(this._entityContainerName) || string.IsNullOrEmpty(this._entitySetName)) { throw new InvalidOperationException(Strings.EntityKey_MissingEntitySetName); } return(metadataWorkspace.GetEntityContainer(this._entityContainerName, DataSpace.CSpace).GetEntitySetByName(this._entitySetName, false)); }
public DbMapping(DbContext context) { _context = context; var objectContext = ((IObjectContextAdapter)context).ObjectContext; _metadataWorkspace = objectContext.MetadataWorkspace; _codeFirstEntityContainer = _metadataWorkspace.GetEntityContainer("CodeFirstDatabase", DataSpace.SSpace); MapDb(); }
public DbMapping(DbContext context) { _context = context; var objectContext = ((IObjectContextAdapter)context).ObjectContext; _metadataWorkspace = objectContext.MetadataWorkspace; _codeFirstEntityContainer = _metadataWorkspace.GetEntityContainer("CodeFirstDatabase", DataSpace.SSpace); MapDb(); }
private string GetSetName(IEntityWithKey entity) { if (entity.EntityKey != null) { return(entity.EntityKey.EntitySetName); } var entityTypeName = entity.GetType().Name; var container = MetadataWorkspace.GetEntityContainer(DefaultContainerName, DataSpace.CSpace); var entitySetName = container.BaseEntitySets.First(meta => meta.ElementType.Name == entityTypeName).Name; return(container.Name + "." + entitySetName); }
public string GetEntitySetName(Type entitySetType) { lock (EntitySetNames) { if (EntitySetNames.ContainsKey(entitySetType.FullName)) { return(EntitySetNames[entitySetType.FullName]); } var container = MetadataWorkspace.GetEntityContainer(DefaultContainerName, DataSpace.CSpace); var entitySetName = (from meta in container.BaseEntitySets where meta.BuiltInTypeKind == BuiltInTypeKind.EntitySet && meta.ElementType.Name == entitySetType.Name select meta.Name).First(); EntitySetNames.Add(entitySetType.FullName, entitySetName); return(entitySetName); } }
private void Initialize(TContext adapter) { lock (mutex) { if (hasMetadataInitialized || adapter == null) { return; } // (1.) Create all types MetadataWorkspace workspace = adapter.ObjectContext.MetadataWorkspace; IEnumerable <EdmType> edmTypes = workspace .GetItems <EdmType>(DataSpace.CSpace) .Where(x => x.BuiltInTypeKind == BuiltInTypeKind.ComplexType || x.BuiltInTypeKind == BuiltInTypeKind.EntityType); foreach (ComplexType edmType in edmTypes.OfType <ComplexType>()) { GetCreateComplexResourceType(workspace, edmType); } foreach (EntityType edmType in edmTypes.OfType <EntityType>()) { GetCreateEntityResourceType(workspace, edmType); } // (2.) Create all entity sets string containerName = GetContainerName(adapter); IEnumerable <EntitySet> entitySets = workspace .GetEntityContainer(containerName, DataSpace.CSpace) .EntitySets; foreach (EntitySet entitySet in entitySets) { GetCreateResourceSet(workspace, entitySet); } // (3.) Create all associations IEnumerable <AssociationSet> assocSets = workspace .GetEntityContainer(GetContainerName(adapter), DataSpace.CSpace) .AssociationSets; foreach (AssociationSet assocSet in assocSets.OrderBy(x => x.Name)) { GetCreateAssociationSet(workspace, assocSet); } //foreach (AssociationSet assocSet in assocSets) // CreateConstraints(workspace, assocSet); // (4.) Create all service operations IEnumerable <MethodInfo> getOps = ReflectionHelper.GetDeclaredMethods <TService, WebGetAttribute>(); foreach (MethodInfo mi in getOps) { CreateServiceOperation(mi, "GET"); } IEnumerable <MethodInfo> postOps = ReflectionHelper.GetDeclaredMethods <TService, WebInvokeAttribute>(); foreach (MethodInfo mi in postOps) { CreateServiceOperation(mi, "POST"); } // (5.) Seal metadata types foreach (var rt in resourceTypes.Values) { rt.SetReadOnly(); } foreach (var rs in resourceSets.Values) { rs.SetReadOnly(); } foreach (var o in serviceOperations.Values) { o.SetReadOnly(); } hasMetadataInitialized = true; } }