entityframework多条件查询类

news/2023/6/8 6:03:09

entityframework多条件查询类

var dataaccess = new BaseAccess();int totalCount = 0;var paramS = new OrderModelField[1];paramS[0].IsDesc = true;paramS[0].PropertyName = "B_Email";Expression<Func<Rm_Sec_UserData, bool>> expr = PredicateExtensions.True<Rm_Sec_UserData>().And(t => t.F_Email.Equals(pUserEmail)).And(t => t.F_UserPass == pPassword);var list = dataaccess.GetListPaged(1, 2,expr, out totalCount, paramS);//
public static class PredicateExtensions
{public static Expression<Func<T, bool>> True<T>() { return f => true; }public static Expression<Func<T, bool>> False<T>() { return f => false; }public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> exp_left, Expression<Func<T, bool>> exp_right){var candidateExpr = Expression.Parameter(typeof(T), "candidate");var parameterReplacer = new ParameterReplacer(candidateExpr);var left = parameterReplacer.Replace(exp_left.Body);var right = parameterReplacer.Replace(exp_right.Body);var body = Expression.And(left, right);return Expression.Lambda<Func<T, bool>>(body, candidateExpr);}public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> exp_left, Expression<Func<T, bool>> exp_right){var candidateExpr = Expression.Parameter(typeof(T), "candidate");var parameterReplacer = new ParameterReplacer(candidateExpr);var left = parameterReplacer.Replace(exp_left.Body);var right = parameterReplacer.Replace(exp_right.Body);var body = Expression.Or(left, right);return Expression.Lambda<Func<T, bool>>(body, candidateExpr);}
}
/// <summary>
/// 统一ParameterExpression
/// </summary>
internal class ParameterReplacer : ExpressionVisitor
{public ParameterReplacer(ParameterExpression paramExpr){this.ParameterExpression = paramExpr;}public ParameterExpression ParameterExpression { get; private set; }public Expression Replace(Expression expr){return this.Visit(expr);}protected override Expression VisitParameter(ParameterExpression p){return this.ParameterExpression;}
}

转载于:https://www.cnblogs.com/renzaijianghu/p/4216835.html


https://dhexx.cn/news/show-16866.html

相关文章

python二维图颜色函数_Python绘图之二维图与三维图详解

各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt np.random.seed(1000) y np.random.stan…

大熊君大话NodeJS之------MongoDB模块(额外篇)

一&#xff0c;开篇分析 这篇属于扩展知识篇&#xff0c;因为在下面的文章中会用到数据库操作&#xff0c;所以今天就来说说它&#xff08;Mongodb模块&#xff09;。 &#xff08;1&#xff09;&#xff0c;简介 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为…

php如何配置gii,从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

Yii2 框架 之所以称之为高效快速开发的一款框架&#xff0c;是因为有一个神奇的工具Gii用过Yii1框架的Coder都知道&#xff0c;Gii可以为你快速生成代码&#xff0c;也就是说搭建一个可以增删改查的WebApp可能一行代码都不用写。当然作为Coder&#xff0c;不写代码怎么能实现我…

Java 集合系列15之 Set架构

http://www.cnblogs.com/skywang12345/p/3311136.htmlJava 集合系列15之 Set架构前面&#xff0c;我们已经系统的对List和Map进行了学习。接下来&#xff0c;我们开始可以学习Set。相信经过Map的了解之后&#xff0c;学习Set会容易很多。毕竟&#xff0c;Set的实现类都是基于Ma…

python3.8提示pip_解决Python3.8用pip安装turtle-0.0.2出现错误问题

turtle库是python的基础绘图库&#xff0c;官方手册 这个库被介绍为一个最常用的用来给孩子们介绍编程知识的方法库&#xff0c;其主要是用于程序设计入门&#xff0c;是标准库之一&#xff0c;利用turtle可以制作很多复杂的绘图。 turtle原理理解 turtle名称含义为“海龟”&am…

Java现在好找工作吗?

Java到2023年已经28岁了&#xff0c;可能你会怀疑它是否还一如当年一样的强大&#xff0c;在应用层领域独占鳌头。但是基于Java庞大的市场占有率和需求&#xff0c;它依然在保持着更新迭代&#xff0c;依然是最常用的底层开发语言&#xff0c;基于其安全性、开放性、稳定性和跨…

python list转换成array_Python之路---数据结构

数据容器&#xff08;数据结构&#xff09;前面我们介绍了 Python 最底层的基本数据类型&#xff1a;布尔型、整型、浮点型以及字符串型。本章将要提到的 数据结构&#xff08;容器&#xff09; 。在这一章中&#xff0c;我们会把之前所学的基本 Python 类型以更为复杂的方式组…

【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读

本文主要介绍如何使用微软TTS语音引擎实现文本朗读&#xff0c;以及生成wav格式的声音文件。 1.语音引擎及语音库的安装 TTS&#xff08;Text-To-Speech&#xff09;是指文本语音的简称,即通过TTS引擎把文本转化为语音输出。 微软TTS语音引擎提供了Windows Speech SDK开发包供编…

live2d_Ren#x27;Py引擎从入门到放弃(支线6)——还在探索阶段的Live2D

世上无难事&#xff0c;只要肯放弃。支线系列是独立于基础之外的内容&#xff0c;会引用一些外部平台大佬的内容&#xff0c;感觉有困难的同学可以暂时不(fang)看(qi)。本篇内容讲解asfdfdfd于2018年8月&#xff0c;在GitHub上新建的renpy-live2d项目。作用是尝试在RenPy中引入…

LM3S之boot loader学习笔记-1

LM3S之boot loader学习笔记-1 彭会锋 &#xff08;首先声明&#xff0c;此系列文章编写参考了很多资料&#xff0c;其中一些内容是原版内容的引用和整理&#xff0c;并加入了一些自己的见解&#xff0c;我已经尽量标明引用部分&#xff0c;如有未全部标注部分&#xff0c;还望见…