Skip to content
Merged
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
6 changes: 0 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,3 @@ jobs:
PROJECT_NAME: AutoMapper.AspNetCore.OData.EFCore
run: ./Pack_Push.ps1
shell: pwsh

- name: Pack and push AutoMapper.AspNetCore.OData.EF6
env:
PROJECT_NAME: AutoMapper.AspNetCore.OData.EF6
run: ./Pack_Push.ps1
shell: pwsh
6 changes: 0 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,3 @@ jobs:
PROJECT_NAME: AutoMapper.AspNetCore.OData.EFCore
run: ./Pack_Push.ps1
shell: pwsh

- name: Pack and push AutoMapper.AspNetCore.OData.EF6
env:
PROJECT_NAME: AutoMapper.AspNetCore.OData.EF6
run: ./Pack_Push.ps1
shell: pwsh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<PackageId>AutoMapper.AspNetCore.OData.EFCore</PackageId>
<Description>Creates LINQ expressions from ODataQueryOptions and executes the query.</Description>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageReleaseNotes>Marking obsolete methods (EF Core only).</PackageReleaseNotes>
<PackageReleaseNotes>Removing obsolete methods and using the latest version of AutoMapper.Extensions.ExpressionMapping. Ending maintenance for AutoMapper.AspNetCore.OData.EF6.</PackageReleaseNotes>
<PackageTags>linq expressions odata efcore</PackageTags>
<PackageIcon>icon.png</PackageIcon>
<RepositoryUrl>https://github.com/AutoMapper/AutoMapper.Extensions.OData</RepositoryUrl>
Expand All @@ -30,8 +30,8 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AutoMapper.Extensions.ExpressionMapping" Version="[10.1.0,11.0.0)" />
<PackageReference Include="LogicBuilder.Expressions.Utils" Version="7.0.0" />
<PackageReference Include="AutoMapper.Extensions.ExpressionMapping" Version="[11.0.0,12.0.0)" />
<PackageReference Include="LogicBuilder.Expressions.Utils" Version="8.0.0" />
<PackageReference Include="Microsoft.AspNetCore.OData" Version="9.4.1" />
<PackageReference Include="MinVer" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
Expand All @@ -41,15 +41,15 @@
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.22" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.11" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net10.0' ">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.5" />
</ItemGroup>

<ItemGroup>
Expand Down
71 changes: 0 additions & 71 deletions AutoMapper.AspNetCore.OData.EFCore/EFCoreLinqExtensions.cs

This file was deleted.

3 changes: 0 additions & 3 deletions AutoMapper.AspNetCore.OData.EFCore/FilterHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,6 @@ private IExpressionPart GetAnyNodeFilterPart(AnyNode anyNode)

private IExpressionPart GetAllNodeFilterPart(AllNode allNode)
{
if (allNode.Body == null || IsTrueConstantExpression(allNode.Body))
return new AllOperator(GetFilterPart(allNode.Source));

//Creating filter part for method call expression with a filter
//e.g. $it.Property.ChildCollection.Any(c => c.Active);
return new AllOperator
Expand Down
10 changes: 0 additions & 10 deletions AutoMapper.AspNetCore.OData.EFCore/LinqExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -425,12 +425,6 @@ public static LambdaExpression MakeLambdaExpression(this ParameterExpression par
return Expression.Lambda(delegateType, body, param);//Resulting lambda expression for the selector.
}

[Obsolete("\"Expression GetOrderByCountCall(this Expression expression, CountNode countNode, string methodName, ODataQueryContext context, string selectorParameterName = \"a\")\"")]
public static Expression GetOrderByCountCall(this Expression expression, CountNode countNode, string methodName, string selectorParameterName = "a")
{
return expression.GetOrderByCountCall(countNode, methodName, null, selectorParameterName);
}

public static Expression GetOrderByCountCall(this Expression expression, CountNode countNode, string methodName, ODataQueryContext context, string selectorParameterName = "a")
{
Type sourceType = LogicBuilder.Expressions.Utils.TypeExtensions.GetUnderlyingElementType(expression);
Expand Down Expand Up @@ -624,10 +618,6 @@ bool HasQuery()
});
}

[Obsolete("\"LambdaExpression GetFilterExpression(this FilterClause filterClause, Type type, ODataQueryContext context)\"")]
public static LambdaExpression GetFilterExpression(this FilterClause filterClause, Type type)
=> filterClause.GetFilterExpression(type, null);

public static LambdaExpression GetFilterExpression(this FilterClause filterClause, Type type, ODataQueryContext context)
{
var parameters = new Dictionary<string, ParameterExpression>();
Expand Down
82 changes: 0 additions & 82 deletions AutoMapper.AspNetCore.OData.EFCore/QueryableExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,44 +13,6 @@ namespace AutoMapper.AspNet.OData
{
public static class QueryableExtensions
{
[Obsolete("Use \"Task<IQueryable<TModel>> GetQueryAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" or \"IQueryable<TModel> GetQuery<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" instead.")]
public static ICollection<TModel> Get<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)
where TModel : class
{
Expression<Func<TModel, bool>> filter = options.ToFilterExpression<TModel>(
querySettings?.ODataSettings?.HandleNullPropagation ?? HandleNullPropagationOption.False,
querySettings?.ODataSettings?.TimeZone,
querySettings?.ODataSettings?.EnableConstantParameterization ?? true);

query.ApplyOptions(mapper, filter, options, querySettings);
return query.Get
(
mapper,
filter,
options.GetQueryableExpression(querySettings?.ODataSettings),
options.SelectExpand.GetIncludes().BuildIncludesExpressionCollection<TModel>()?.ToList()
);
}

[Obsolete("Use \"Task<IQueryable<TModel>> GetQueryAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" or \"IQueryable<TModel> GetQuery<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)\" instead.")]
public static async Task<ICollection<TModel>> GetAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)
where TModel : class
{
Expression<Func<TModel, bool>> filter = options.ToFilterExpression<TModel>(
querySettings?.ODataSettings?.HandleNullPropagation ?? HandleNullPropagationOption.False,
querySettings?.ODataSettings?.TimeZone,
querySettings?.ODataSettings?.EnableConstantParameterization ?? true);
await query.ApplyOptionsAsync(mapper, filter, options, querySettings);
return await query.GetAsync
(
mapper,
filter,
options.GetQueryableExpression(querySettings?.ODataSettings),
options.SelectExpand.GetIncludes().BuildIncludesExpressionCollection<TModel>()?.ToList(),
querySettings?.AsyncSettings
);
}

public static async Task<IQueryable<TModel>> GetQueryAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, ODataQueryOptions<TModel> options, QuerySettings querySettings = null)
where TModel : class
{
Expand All @@ -74,57 +36,13 @@ public static IQueryable<TModel> GetQuery<TModel, TData>(this IQueryable<TData>
return query.GetQueryable(mapper, options, querySettings, filter);
}

[Obsolete("This method was meant for internal use. The equivalent GetQueryable methods are private.")]
public static ICollection<TModel> Get<TModel, TData>(this IQueryable<TData> query, IMapper mapper,
Expression<Func<TModel, bool>> filter = null,
Expression<Func<IQueryable<TModel>, IQueryable<TModel>>> queryFunc = null,
ICollection<Expression<Func<IQueryable<TModel>, IIncludableQueryable<TModel, object>>>> includeProperties = null)
=> mapper.Map<IEnumerable<TData>, IEnumerable<TModel>>
(
query.GetDataQuery(mapper, filter, queryFunc, includeProperties).ToList()
).ToList();

[Obsolete("This method was meant for internal use. The equivalent GetQueryable methods are private.")]
public static async Task<ICollection<TModel>> GetAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper,
Expression<Func<TModel, bool>> filter = null,
Expression<Func<IQueryable<TModel>, IQueryable<TModel>>> queryFunc = null,
ICollection<Expression<Func<IQueryable<TModel>, IIncludableQueryable<TModel, object>>>> includeProperties = null,
AsyncSettings asyncSettings = null)
=> mapper.Map<IEnumerable<TData>, IEnumerable<TModel>>
(
await query
.GetDataQuery(mapper, filter, queryFunc, includeProperties)
.ToListAsync
(
asyncSettings?.CancellationToken ?? default
)
).ToList();

public static async Task ApplyOptionsAsync<TModel, TData>(this IQueryable<TData> query, IMapper mapper, Expression<Func<TModel, bool>> filter, ODataQueryOptions<TModel> options, QuerySettings querySettings)
{
ApplyOptions(options, querySettings);
if (options.Count?.Value == true)
options.AddCountOptionsResult(await query.QueryLongCountAsync(mapper, filter, querySettings?.AsyncSettings?.CancellationToken ?? default));
}

private static IQueryable<TData> GetDataQuery<TModel, TData>(this IQueryable<TData> query, IMapper mapper,
Expression<Func<TModel, bool>> filter = null,
Expression<Func<IQueryable<TModel>, IQueryable<TModel>>> queryFunc = null,
ICollection<Expression<Func<IQueryable<TModel>, IIncludableQueryable<TModel, object>>>> includeProperties = null)
{
Expression<Func<TData, bool>> f = mapper.MapExpression<Expression<Func<TData, bool>>>(filter);
Func<IQueryable<TData>, IQueryable<TData>> mappedQueryFunc = mapper.MapExpression<Expression<Func<IQueryable<TData>, IQueryable<TData>>>>(queryFunc)?.Compile();
ICollection<Expression<Func<IQueryable<TData>, IIncludableQueryable<TData, object>>>> includes = mapper.MapIncludesList<Expression<Func<IQueryable<TData>, IIncludableQueryable<TData, object>>>>(includeProperties);

if (filter != null)
query = query.Where(f);

if (includes != null)
query = includes.Select(i => i.Compile()).Aggregate(query, (q, next) => q = next(q));

return mappedQueryFunc != null ? mappedQueryFunc(query) : query;
}

private static IQueryable<TModel> GetQueryable<TModel, TData>(this IQueryable<TData> query,
IMapper mapper,
ODataQueryOptions<TModel> options,
Expand Down
Loading
Loading