41 lines
1.7 KiB
C#
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;
|
|
} |