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 static List <FieldType> CreateEntityFields(IEdmModel edmModel, OeGraphTypeBuilder graphTypeBuilder) { Db.OeDataAdapter dataAdapter = edmModel.GetDataAdapter(edmModel.EntityContainer); var entityFields = new List <FieldType>(dataAdapter.EntitySetAdapters.Count); foreach (Db.OeEntitySetAdapter entitySetAdapter in dataAdapter.EntitySetAdapters) { FieldType entityField = new FieldType() { Name = entitySetAdapter.EntitySetName, Resolver = new OeEntitySetResolver(edmModel), ResolvedType = graphTypeBuilder.CreateListGraphType(entitySetAdapter.EntityType) }; entityFields.Add(entityField); } return(entityFields); }