Skip to content

Target EF Core 2.1.1 & remove fody for nuget package #185

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions src/GraphQL.EntityFramework/GraphApi/EfGraphQLService_Queryable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ public FieldType AddQueryField<TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class
{
return AddQueryField(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddQueryFieldAsync(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
}
public FieldType AddQueryField<TReturn>(
public FieldType AddQueryFieldAsync<TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, object>, Task<IQueryable<TReturn>>> resolve,
Expand All @@ -30,7 +30,7 @@ public FieldType AddQueryField<TReturn>(
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildQueryField(graphType, name, resolve, arguments);
var field = BuildQueryFieldAsync(graphType, name, resolve, arguments);
return graph.AddField(field);
}

Expand All @@ -42,10 +42,10 @@ public FieldType AddQueryField<TSource, TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class
{
return AddQueryField(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddQueryFieldAsync(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
}

public FieldType AddQueryField<TSource, TReturn>(
public FieldType AddQueryFieldAsync<TSource, TReturn>(
ObjectGraphType<TSource> graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Expand All @@ -54,7 +54,7 @@ public FieldType AddQueryField<TSource, TReturn>(
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildQueryField(graphType, name, resolve, arguments);
var field = BuildQueryFieldAsync(graphType, name, resolve, arguments);
return graph.AddField(field);
}

Expand All @@ -66,9 +66,9 @@ public FieldType AddQueryField<TSource, TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class
{
return AddQueryField<TSource, TReturn>(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddQueryFieldAsync<TSource, TReturn>(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
}
public FieldType AddQueryField<TSource, TReturn>(
public FieldType AddQueryFieldAsync<TSource, TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Expand All @@ -77,21 +77,21 @@ public FieldType AddQueryField<TSource, TReturn>(
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildQueryField(graphType, name, resolve, arguments);
var field = BuildQueryFieldAsync(graphType, name, resolve, arguments);
return graph.AddField(field);
}

FieldType BuildQueryField<TSource, TReturn>(
FieldType BuildQueryFieldAsync<TSource, TReturn>(
Type graphType,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
IEnumerable<QueryArgument> arguments)
where TReturn : class
{
return BuildQueryField(name, resolve, arguments, graphType);
return BuildQueryFieldAsync(name, resolve, arguments, graphType);
}

FieldType BuildQueryField<TSource, TReturn>(
FieldType BuildQueryFieldAsync<TSource, TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
IEnumerable<QueryArgument> arguments,
Expand Down
49 changes: 29 additions & 20 deletions src/GraphQL.EntityFramework/GraphApi/EfGraphQLService_Single.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,24 @@ public FieldType AddSingleField<TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, object>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
return AddSingleField(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddSingleFieldAsync(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments, nullable);
}

public FieldType AddSingleField<TReturn>(
public FieldType AddSingleFieldAsync<TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, object>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildSingleField(name, resolve, arguments, graphType);
var field = BuildSingleFieldAsync(name, resolve, arguments, graphType, nullable);
return graph.AddField(field);
}

Expand All @@ -40,22 +42,24 @@ public FieldType AddSingleField<TSource, TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
return AddSingleField(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddSingleFieldAsync(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments, nullable);
}

public FieldType AddSingleField<TSource, TReturn>(
public FieldType AddSingleFieldAsync<TSource, TReturn>(
ObjectGraphType<TSource> graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildSingleField(name, resolve, arguments, graphType);
var field = BuildSingleFieldAsync(name, resolve, arguments, graphType, nullable);
return graph.AddField(field);
}

Expand All @@ -64,39 +68,42 @@ public FieldType AddSingleField<TSource, TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
return AddSingleField<TSource, TReturn>(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments);
return AddSingleFieldAsync<TSource, TReturn>(graph, name, x => Task.FromResult(resolve(x)), graphType, arguments, nullable);
}

public FieldType AddSingleField<TSource, TReturn>(
public FieldType AddSingleFieldAsync<TSource, TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
Guard.AgainstNull(nameof(graph), graph);
var field = BuildSingleField(name, resolve, arguments, graphType);
var field = BuildSingleFieldAsync(name, resolve, arguments, graphType, nullable);
return graph.AddField(field);
}

FieldType BuildSingleField<TSource, TReturn>(
FieldType BuildSingleFieldAsync<TSource, TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
IEnumerable<QueryArgument> arguments,
Type graphType)
Type graphType,
bool nullable)
where TReturn : class
{
Guard.AgainstNullWhiteSpace(nameof(name), name);
Guard.AgainstNull(nameof(resolve), resolve);

//lookup the graph type if not explicitly specified
graphType = graphType ?? GraphTypeFinder.FindGraphType<TReturn>();
//construct a non-null graph type for the specified graph type
var wrappedType = typeof(NonNullGraphType<>).MakeGenericType(graphType);
//if not nullable, construct a non-null graph type for the specified graph type
var wrappedType = nullable ? graphType : typeof(NonNullGraphType<>).MakeGenericType(graphType);

//build the field
return new FieldType
Expand Down Expand Up @@ -127,7 +134,9 @@ FieldType BuildSingleField<TSource, TReturn>(
return single;
}
}
//throw an error if no value was found, or if the returned value was filtered out by the global filters
//if no value was found, or if the returned value was filtered out by the global filters,
// either return null, or throw an error if the field is not nullable
if (nullable) return null;
throw new ExecutionError("Not found");
})
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ FieldType AddQueryField<TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class;

FieldType AddQueryField<TReturn>(
FieldType AddQueryFieldAsync<TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext,object>, Task<IQueryable<TReturn>>> resolve,
Expand All @@ -32,7 +32,7 @@ FieldType AddQueryField<TSource, TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class;

FieldType AddQueryField<TSource, TReturn>(
FieldType AddQueryFieldAsync<TSource, TReturn>(
ObjectGraphType<TSource> graph,
string name,
Func<ResolveEfFieldContext<TDbContext,TSource>, Task<IQueryable<TReturn>>> resolve,
Expand All @@ -48,7 +48,7 @@ FieldType AddQueryField<TSource, TReturn>(
IEnumerable<QueryArgument> arguments = null)
where TReturn : class;

FieldType AddQueryField<TSource, TReturn>(
FieldType AddQueryFieldAsync<TSource, TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext,TSource>, Task<IQueryable<TReturn>>> resolve,
Expand Down
24 changes: 15 additions & 9 deletions src/GraphQL.EntityFramework/GraphApi/IEfGraphQLService_Single.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,47 +13,53 @@ FieldType AddSingleField<TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, object>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;

FieldType AddSingleField<TReturn>(
FieldType AddSingleFieldAsync<TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, object>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;

FieldType AddSingleField<TSource, TReturn>(
ObjectGraphType<TSource> graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;

FieldType AddSingleField<TSource, TReturn>(
FieldType AddSingleFieldAsync<TSource, TReturn>(
ObjectGraphType<TSource> graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;

FieldType AddSingleField<TSource, TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, IQueryable<TReturn>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;

FieldType AddSingleField<TSource, TReturn>(
FieldType AddSingleFieldAsync<TSource, TReturn>(
ObjectGraphType graph,
string name,
Func<ResolveEfFieldContext<TDbContext, TSource>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class;
}
}
16 changes: 9 additions & 7 deletions src/GraphQL.EntityFramework/GraphApi/QueryGraphType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,34 +40,36 @@ protected FieldType AddQueryField<TReturn>(
return efGraphQlService.AddQueryField(this, name, resolve, graphType, arguments);
}

protected FieldType AddQueryField<TReturn>(
protected FieldType AddQueryFieldAsync<TReturn>(
string name,
Func<ResolveEfFieldContext<TDbContext, object>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
IEnumerable<QueryArgument> arguments = null)
where TReturn : class
{
return efGraphQlService.AddQueryField(this, name, resolve, graphType, arguments);
return efGraphQlService.AddQueryFieldAsync(this, name, resolve, graphType, arguments);
}

protected FieldType AddSingleField<TReturn>(
Func<ResolveEfFieldContext<TDbContext, object>, IQueryable<TReturn>> resolve,
Type graphType = null,
string name = nameof(TReturn),
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
return efGraphQlService.AddSingleField(this, name, resolve, graphType, arguments);
return efGraphQlService.AddSingleField(this, name, resolve, graphType, arguments, nullable);
}

protected FieldType AddSingleField<TReturn>(
protected FieldType AddSingleFieldAsync<TReturn>(
Func<ResolveEfFieldContext<TDbContext, object>, Task<IQueryable<TReturn>>> resolve,
Type graphType = null,
string name = nameof(TReturn),
IEnumerable<QueryArgument> arguments = null)
IEnumerable<QueryArgument> arguments = null,
bool nullable = false)
where TReturn : class
{
return efGraphQlService.AddSingleField(this, name, resolve, graphType, arguments);
return efGraphQlService.AddSingleFieldAsync(this, name, resolve, graphType, arguments, nullable);
}
}
}
4 changes: 1 addition & 3 deletions src/GraphQL.EntityFramework/GraphQL.EntityFramework.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@
<Description>Add EntityFramework Core IQueryable support to GraphQL</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwait.Fody" Version="3.1.0" PrivateAssets="All" />
<PackageReference Include="Fody" Version="5.1.1" PrivateAssets="All" />
<PackageReference Include="GraphQL" Version="2.4.0" />
<PackageReference Include="Microsoft.CSharp" Version="4.5.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.1" />
<PackageReference Include="ProjectDefaults" Version="1.0.7" PrivateAssets="All" />
</ItemGroup>
</Project>
5 changes: 5 additions & 0 deletions src/SampleWeb/Query.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ public Query(IEfGraphQLService<GraphQlEfSampleDbContext> efGraphQlService) :
resolve: context => context.DbContext.Companies,
name: "company");

AddSingleField(
resolve: context => context.DbContext.Companies,
name: "companyOrNull",
nullable: true);

AddQueryConnectionField(
name: "companiesConnection",
resolve: context => context.DbContext.Companies);
Expand Down