Skip to content

Commit 6ff5883

Browse files
committed
fix: review round 31/08
1 parent 9a7ebe0 commit 6ff5883

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

src/JsonApiDotNetCore/Builders/JsonApiApplicationBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public void ConfigureServices(Type dbContextType)
152152
AddResourceHooks();
153153
}
154154

155-
_services.AddScoped<IInverseRelationships, InverseRelationships>();
155+
_services.TryAddScoped<IInverseRelationships, InverseRelationships>();
156156
}
157157

158158
private void AddMiddlewareLayer()

src/JsonApiDotNetCore/Extensions/ApplicationBuilderExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public static class ApplicationBuilderExtensions
2626
/// </example>
2727
public static void UseJsonApi(this IApplicationBuilder builder)
2828
{
29+
30+
using var scope = builder.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope();
31+
var inverseRelationshipResolver = scope.ServiceProvider.GetRequiredService<IInverseRelationships>();
32+
inverseRelationshipResolver.Resolve();
33+
2934
var jsonApiApplicationBuilder = builder.ApplicationServices.GetRequiredService<IJsonApiApplicationBuilder>();
3035
jsonApiApplicationBuilder.ConfigureMvcOptions = options =>
3136
{

src/JsonApiDotNetCore/Extensions/ServiceCollectionExtensions.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public static IServiceCollection AddJsonApi(this IServiceCollection services,
2727
IMvcCoreBuilder mvcBuilder = null)
2828
{
2929
SetupApplicationBuilder(services, options, discovery, resources, mvcBuilder, null);
30-
ResolveInverseRelationships(services);
3130

3231
return services;
3332
}
@@ -44,7 +43,6 @@ public static IServiceCollection AddJsonApi<TDbContext>(this IServiceCollection
4443
where TDbContext : DbContext
4544
{
4645
SetupApplicationBuilder(services, options, discovery, resources, mvcBuilder, typeof(TDbContext));
47-
ResolveInverseRelationships(services);
4846

4947
return services;
5048
}

src/JsonApiDotNetCore/Internal/InverseRelationships.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,20 @@ public void Resolve()
4848
foreach (ResourceContext ce in _provider.GetResourceContexts())
4949
{
5050
IEntityType meta = context.Model.FindEntityType(ce.ResourceType);
51-
if (meta == null) continue;
51+
if (meta == null)
52+
{
53+
continue;
54+
}
55+
5256
foreach (var attr in ce.Relationships)
5357
{
54-
if (attr is HasManyThroughAttribute) continue;
58+
if (attr is HasManyThroughAttribute)
59+
{
60+
continue;
61+
}
5562
INavigation inverseNavigation = meta.FindNavigation(attr.Property.Name)?.FindInverse();
5663
attr.InverseNavigation = inverseNavigation?.Name;
57-
}
64+
}
5865
}
5966
}
6067
}

0 commit comments

Comments
 (0)