2024-10-10 17:13:39 +02:00

41 lines
1.7 KiB
C#

using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Query.Internal;
namespace Baguette.Querying.EntityFrameworkCore;
// public class ServiceQueryProvider : IAsyncQueryProvider, IInfrastructure<IServiceProvider>
// #pragma warning restore EF1001
// {
// private readonly IAsyncQueryProvider inner;
// private readonly IServiceProvider provider;
//
// #pragma warning disable EF1001
// public ServiceQueryProvider(IAsyncQueryProvider inner, IServiceProvider provider) => (this.inner, this.provider) = (inner, provider);
// #pragma warning restore EF1001
//
// IServiceProvider IInfrastructure<IServiceProvider>.Instance => provider;
//
// public IQueryable CreateQuery(Expression expression) => inner.CreateQuery(expression);
//
// public IQueryable<TElement> CreateQuery<TElement>(Expression expression) => inner.CreateQuery<TElement>(expression);
//
// public object? Execute(Expression expression) => inner.Execute(expression);
//
// public TResult Execute<TResult>(Expression expression) => inner.Execute<TResult>(expression);
//
// public TResult ExecuteAsync<TResult>(Expression expression, CancellationToken cancellationToken = default) => inner.ExecuteAsync<TResult>(expression, cancellationToken);
// }
#pragma warning disable EF1001
public class ServiceQueryProvider : EntityQueryProvider, IInfrastructure<IServiceProvider>
#pragma warning restore EF1001
{
private readonly IServiceProvider provider;
#pragma warning disable EF1001
public ServiceQueryProvider(IQueryCompiler queryCompiler, IServiceProvider provider) : base(queryCompiler)
{
this.provider = provider;
}
#pragma warning restore EF1001
IServiceProvider IInfrastructure<IServiceProvider>.Instance => provider;
}