C#条件拼接Expression<Func<T,

更新时间:2023-05-22 08:54:16 阅读: 评论:0

margaretC#条件拼接Expression<Func<T, bool>>的使⽤
使⽤代码
特别注意:拼接条件时,所使⽤到的条件strID,strBir必须是独⽴的
万众一心是什么意思var predicate = PredicateBuilder.GetTrue<Student>();
dpmipredicate = predicate.And(it => it.id.ToString().Contains(strID));
predicate = predicate.And(it => it.Birthday.ToString().Contains(strBir));
predicate = predicate.And(it => it.Sex.ToString().Contains(strSex));
predicate = predicate.And(it => it.Age == 20);
var lst = db.Queryable<Student>.Where(predicate).ToList();
⼯具类
using System;
using System.Linq.Expressions;
usnavy
namespace WindowsFormsApp1.Tools
{
public static class PredicateBuilder
{
public static Expression<Func<T, bool>> GetTrue<T>() { return f => true; }
public static Expression<Func<T, bool>> GetFal<T>() { return f => fal; }
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> cond)
英语四级听力网站{
return first.AndAlso<T>(cond, Expression.AndAlso);
wildfire
}
public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> cond)
{
return first.AndAlso<T>(cond, Expression.OrEl);
}
private static Expression<Func<T, bool>> AndAlso<T>(this Expression<Func<T, bool>> expr1, Expression<Func<T, bool>> expr2, Func<Expression, Expression, BinaryExpression> func)        {
var parameter = Expression.Parameter(typeof(T));
var leftVisitor = new ReplaceExpressionVisitor(expr1.Parameters[0], parameter);
var left = leftVisitor.Visit(expr1.Body);
var rightVisitor = new ReplaceExpressionVisitor(expr2.Parameters[0], parameter);
var right = rightVisitor.Visit(expr2.Body);
中国人不吃这一套怎么翻译return Expression.Lambda<Func<T, bool>>(
func(left, right), parameter);
}
private class ReplaceExpressionVisitor : ExpressionVisitor
独立能力{
private readonly Expression _oldValue;
private readonly Expression _newValue;
public ReplaceExpressionVisitor(Expression oldValue, Expression newValue)
{
_oldValue = oldValue;
_newValue = newValue;
}
public override Expression Visit(Expression node)
{
if (node == _oldValue)
return _newValue;
return ba.Visit(node);
星期一到星期日英文
}
climax}
}
}
到此这篇关于C#条件拼接Expression<Func<T, bool>>的使⽤的⽂章就介绍到这了,更多相关C#
条件拼接Expression<Func<T, bool>>内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

本文发布于:2023-05-22 08:54:16,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/118128.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:不吃   相关   浏览   条件   拼接   网站   能力   搜索
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图