Esempio n. 1
0
        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();
        }
Esempio n. 5
0
        public DbMapping(DbContext context)
        {
            _context = context;

            var objectContext = ((IObjectContextAdapter)context).ObjectContext;

            _metadataWorkspace = objectContext.MetadataWorkspace;

            _codeFirstEntityContainer = _metadataWorkspace.GetEntityContainer("CodeFirstDatabase", DataSpace.SSpace);

            MapDb();
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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;
            }
        }