Skip to content

Commit e42f2f1

Browse files
committed
feat(*): remove non-EF dependencies on DbContextResolver
1 parent 68fdee9 commit e42f2f1

File tree

5 files changed

+8
-21
lines changed

5 files changed

+8
-21
lines changed

src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ public class DefaultEntityRepository<TEntity>
2020
{
2121
public DefaultEntityRepository(
2222
ILoggerFactory loggerFactory,
23-
IJsonApiContext jsonApiContext)
24-
: base(loggerFactory, jsonApiContext)
23+
IJsonApiContext jsonApiContext,
24+
IDbContextResolver contextResolver)
25+
: base(loggerFactory, jsonApiContext, contextResolver)
2526
{ }
2627
}
2728

@@ -50,9 +51,9 @@ public DefaultEntityRepository(
5051

5152
public DefaultEntityRepository(
5253
ILoggerFactory loggerFactory,
53-
IJsonApiContext jsonApiContext)
54+
IJsonApiContext jsonApiContext,
55+
IDbContextResolver contextResolver)
5456
{
55-
var contextResolver = jsonApiContext.GetDbContextResolver();
5657
_context = contextResolver.GetContext();
5758
_dbSet = contextResolver.GetDbSet<TEntity>();
5859
_jsonApiContext = jsonApiContext;

src/JsonApiDotNetCore/Internal/Generics/GenericProcessorFactory.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
using System;
2-
using JsonApiDotNetCore.Data;
3-
using Microsoft.EntityFrameworkCore;
42

53
namespace JsonApiDotNetCore.Internal.Generics
64
{
75
public class GenericProcessorFactory : IGenericProcessorFactory
86
{
9-
private readonly DbContext _dbContext;
107
private readonly IServiceProvider _serviceProvider;
118

12-
public GenericProcessorFactory(
13-
IDbContextResolver dbContextResolver,
14-
IServiceProvider serviceProvider)
9+
public GenericProcessorFactory(IServiceProvider serviceProvider)
1510
{
16-
_dbContext = dbContextResolver.GetContext();
1711
_serviceProvider = serviceProvider;
1812
}
1913

src/JsonApiDotNetCore/Services/IJsonApiContext.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Reflection;
43
using JsonApiDotNetCore.Builders;
54
using JsonApiDotNetCore.Configuration;
6-
using JsonApiDotNetCore.Data;
75
using JsonApiDotNetCore.Internal;
86
using JsonApiDotNetCore.Internal.Generics;
97
using JsonApiDotNetCore.Internal.Query;
@@ -29,6 +27,5 @@ public interface IJsonApiContext
2927
Dictionary<RelationshipAttribute, object> RelationshipsToUpdate { get; set; }
3028
Type ControllerType { get; set; }
3129
TAttribute GetControllerAttribute<TAttribute>() where TAttribute : Attribute;
32-
IDbContextResolver GetDbContextResolver();
3330
}
3431
}

src/JsonApiDotNetCore/Services/JsonApiContext.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Linq;
44
using JsonApiDotNetCore.Builders;
55
using JsonApiDotNetCore.Configuration;
6-
using JsonApiDotNetCore.Data;
76
using JsonApiDotNetCore.Internal;
87
using JsonApiDotNetCore.Internal.Generics;
98
using JsonApiDotNetCore.Internal.Query;
@@ -15,12 +14,10 @@ namespace JsonApiDotNetCore.Services
1514
public class JsonApiContext : IJsonApiContext
1615
{
1716
private readonly IHttpContextAccessor _httpContextAccessor;
18-
private readonly IDbContextResolver _contextResolver;
1917
private readonly IQueryParser _queryParser;
2018
private readonly IControllerContext _controllerContext;
2119

2220
public JsonApiContext(
23-
IDbContextResolver contextResolver,
2421
IContextGraph contextGraph,
2522
IHttpContextAccessor httpContextAccessor,
2623
JsonApiOptions options,
@@ -29,7 +26,6 @@ public JsonApiContext(
2926
IQueryParser queryParser,
3027
IControllerContext controllerContext)
3128
{
32-
_contextResolver = contextResolver;
3329
ContextGraph = contextGraph;
3430
_httpContextAccessor = httpContextAccessor;
3531
Options = options;
@@ -81,8 +77,6 @@ public IJsonApiContext ApplyContext<T>(object controller)
8177
return this;
8278
}
8379

84-
public IDbContextResolver GetDbContextResolver() => _contextResolver;
85-
8680
private PageManager GetPageManager()
8781
{
8882
if (Options.DefaultPageSize == 0 && (QuerySet == null || QuerySet.PageQuery.PageSize == 0))

test/JsonApiDotNetCoreExampleTests/Helpers/Repositories/AuthorizedTodoItemsRepository.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ public class AuthorizedTodoItemsRepository : DefaultEntityRepository<TodoItem>
1616
public AuthorizedTodoItemsRepository(
1717
ILoggerFactory loggerFactory,
1818
IJsonApiContext jsonApiContext,
19+
IDbContextResolver contextResolver,
1920
IAuthorizationService authService)
20-
: base(loggerFactory, jsonApiContext)
21+
: base(loggerFactory, jsonApiContext, contextResolver)
2122
{
2223
_logger = loggerFactory.CreateLogger<AuthorizedTodoItemsRepository>();
2324
_authService = authService;

0 commit comments

Comments
 (0)