You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.4 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace zzz.Common.Helper
{
/// <summary>
/// EF Core Linq 拓展
/// </summary>
public static class LinqExpression
{
/// <summary>
/// 创建 Linq/Lambda 表达式
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <param name="expression">表达式</param>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, bool>> Create<TSource>(Expression<Func<TSource, bool>> expression)
{
return expression;
}
/// <summary>
/// 创建 Linq/Lambda 表达式,支持索引器
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <param name="expression">表达式</param>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, int, bool>> Create<TSource>(Expression<Func<TSource, int, bool>> expression)
{
return expression;
}
/// <summary>
/// 创建 And 表达式
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, bool>> And<TSource>()
{
return u => true;
}
/// <summary>
/// 创建 And 表达式,支持索引器
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, int, bool>> IndexAnd<TSource>()
{
return (u, i) => true;
}
/// <summary>
/// 创建 Or 表达式
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, bool>> Or<TSource>()
{
return u => false;
}
/// <summary>
/// 创建 Or 表达式,支持索引器
/// </summary>
/// <typeparam name="TSource">泛型类型</typeparam>
/// <returns>新的表达式</returns>
public static Expression<Func<TSource, int, bool>> IndexOr<TSource>()
{
return (u, i) => false;
}
}
}