45 lines
1.0 KiB
C#
45 lines
1.0 KiB
C#
using System.Collections;
|
|
using System.Linq.Expressions;
|
|
using Microsoft.EntityFrameworkCore.Query;
|
|
|
|
namespace DysonNetwork.Pass.Extensions;
|
|
|
|
public static class OptionalQueryExtensions
|
|
{
|
|
public static IQueryable<T> If<
|
|
T
|
|
>(
|
|
this IQueryable<T> source,
|
|
bool condition,
|
|
Func<IQueryable<T>, IQueryable<T>> transform
|
|
)
|
|
{
|
|
return condition ? transform(source) : source;
|
|
}
|
|
|
|
public static IQueryable<T> If<
|
|
T,
|
|
TP
|
|
>(
|
|
this IIncludableQueryable<T, TP> source,
|
|
bool condition,
|
|
Func<IIncludableQueryable<T, TP>, IQueryable<T>> transform
|
|
)
|
|
where T : class
|
|
{
|
|
return condition ? transform(source) : source;
|
|
}
|
|
|
|
public static IQueryable<T> If<
|
|
T,
|
|
TP
|
|
>(
|
|
this IIncludableQueryable<T, IEnumerable<TP>> source,
|
|
bool condition,
|
|
Func<IIncludableQueryable<T, IEnumerable<TP>>, IQueryable<T>> transform
|
|
)
|
|
where T : class
|
|
{
|
|
return condition ? transform(source) : source;
|
|
}
|
|
} |