Beispiel #1
0
        private ObjectGraphType CreateQuery()
        {
            var entityFields = new List <FieldType>(_dataAdapter.EntitySetAdapters.Count);

            foreach (Db.OeEntitySetAdapter entitySetAdapter in _dataAdapter.EntitySetAdapters)
            {
                Type entitySetResolverType = typeof(OeEntitySetResolver <>).MakeGenericType(entitySetAdapter.EntityType);
                var  entitySetResolver     = (IFieldResolver)entitySetResolverType.GetConstructors()[0].Invoke(new Object[] { _dataAdapter, _edmModel });

                FieldType entityField = new FieldType()
                {
                    Name         = entitySetAdapter.EntitySetName,
                    Resolver     = entitySetResolver,
                    ResolvedType = _graphTypeBuilder.CreateListGraphType(entitySetAdapter.EntityType)
                };

                entityFields.Add(entityField);
            }

            var query = new ObjectGraphType();

            foreach (FieldType entityField in entityFields)
            {
                _graphTypeBuilder.AddNavigationProperties(entityField);
                query.AddField(entityField);
            }
            return(query);
        }
        private ObjectGraphType CreateQuery()
        {
            var entityFields = new List <FieldType>(CreateEntityFields(_edmModel, _graphTypeBuilder));

            foreach (IEdmModel refModel in _edmModel.ReferencedModels)
            {
                if (refModel.EntityContainer != null)
                {
                    entityFields.AddRange(CreateEntityFields(refModel, _graphTypeBuilder));
                }
            }

            var query = new ObjectGraphType();

            foreach (FieldType entityField in entityFields)
            {
                _graphTypeBuilder.AddNavigationProperties(entityField);
                query.AddField(entityField);
            }
            return(query);
        }