Skip to content

Commit d6b1f9d

Browse files
author
Bart Koelman
committed
Removed EntityFrameworkCoreSupport (no longer needed for EF Core 5+)
1 parent a1bef68 commit d6b1f9d

File tree

5 files changed

+2
-103
lines changed

5 files changed

+2
-103
lines changed

src/JsonApiDotNetCore/Queries/Internal/QueryableBuilding/SelectClauseBuilder.cs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -186,25 +186,6 @@ private Expression CreateCollectionInitializer(LambdaScope lambdaScope, Property
186186

187187
Expression layerExpression = builder.ApplyQuery(layer);
188188

189-
// Earlier versions of EF Core 3.x failed to understand `query.ToHashSet()`, so we emit `new HashSet(query)` instead.
190-
// Interestingly, EF Core 5 RC1 fails to understand `new HashSet(query)`, so we emit `query.ToHashSet()` instead.
191-
// https://github.com/dotnet/efcore/issues/22902
192-
193-
if (EntityFrameworkCoreSupport.Version.Major < 5)
194-
{
195-
Type enumerableOfElementType = typeof(IEnumerable<>).MakeGenericType(elementType);
196-
Type typedCollection = CollectionConverter.ToConcreteCollectionType(collectionProperty.PropertyType);
197-
198-
ConstructorInfo typedCollectionConstructor = typedCollection.GetConstructor(enumerableOfElementType.AsArray());
199-
200-
if (typedCollectionConstructor == null)
201-
{
202-
throw new InvalidOperationException($"Constructor on '{typedCollection.Name}' that accepts '{enumerableOfElementType.Name}' not found.");
203-
}
204-
205-
return Expression.New(typedCollectionConstructor, layerExpression);
206-
}
207-
208189
string operationName = CollectionConverter.TypeCanContainHashSet(collectionProperty.PropertyType) ? "ToHashSet" : "ToList";
209190
return CopyCollectionExtensionMethodCall(layerExpression, operationName, elementType);
210191
}

src/JsonApiDotNetCore/Repositories/EntityFrameworkCoreRepository.cs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,6 @@ protected virtual IQueryable<TResource> ApplyQueryLayer(QueryLayer layer)
103103

104104
ArgumentGuard.NotNull(layer, nameof(layer));
105105

106-
QueryLayer rewrittenLayer = layer;
107-
108-
if (EntityFrameworkCoreSupport.Version.Major < 5)
109-
{
110-
var writer = new MemoryLeakDetectionBugRewriter();
111-
rewrittenLayer = writer.Rewrite(layer);
112-
}
113-
114106
IQueryable<TResource> source = GetAll();
115107

116108
// @formatter:wrap_chained_method_calls chop_always
@@ -136,7 +128,7 @@ protected virtual IQueryable<TResource> ApplyQueryLayer(QueryLayer layer)
136128
var builder = new QueryableBuilder(source.Expression, source.ElementType, typeof(Queryable), nameFactory, _resourceFactory, _resourceGraph,
137129
_dbContext.Model);
138130

139-
Expression expression = builder.ApplyQuery(rewrittenLayer);
131+
Expression expression = builder.ApplyQuery(layer);
140132
return source.Provider.CreateQuery<TResource>(expression);
141133
}
142134

src/JsonApiDotNetCore/Repositories/EntityFrameworkCoreSupport.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/JsonApiDotNetCore/Repositories/MemoryLeakDetectionBugRewriter.cs

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/JsonApiDotNetCore/Resources/ResourceFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private static Expression CreateTupleAccessExpressionForConstant(object value, T
105105
return Expression.Property(tupleCreateCall, "Item1");
106106
}
107107

108-
internal static bool HasSingleConstructorWithoutParameters(Type type)
108+
private static bool HasSingleConstructorWithoutParameters(Type type)
109109
{
110110
ConstructorInfo[] constructors = type.GetConstructors().Where(constructor => !constructor.IsStatic).ToArray();
111111

0 commit comments

Comments
 (0)