根据输入的模型属性表达式获取名称

public T GetEntity<T>(string tableName, Dictionary<Expression<Func<T,object>>,object> conditionDic) where T : new()
        {
            var dic = new Dictionary<string, object>();
            foreach (var kp in conditionDic)
            {
                var columnName = "";
                if (kp.Key.Body is UnaryExpression)
                {
                    columnName = ((MemberExpression)((UnaryExpression)kp.Key.Body).Operand).Member.Name;
                }
                else if (kp.Key.Body is MemberExpression)
                {
                    columnName = ((MemberExpression)kp.Key.Body).Member.Name;
                }
                else if (kp.Key.Body is ParameterExpression)
                {
                    columnName = ((ParameterExpression)kp.Key.Body).Type.Name;
                }
                if (string.IsNullOrEmpty(columnName)) continue;
                dic.Add(columnName, key.Value);
            }
            //return GetEntity<T>(tableName, dic);
        }

使用方式:

var dic = new Dictionary<Expression<Func<Entity,object>>, object>
                {
                    {p => p.Member1, "test1"},
                    {p => p.Member2, 2}
                };
var tmp = GetEntity("TableName", dic);
时间: 2024-08-29 07:09:55

根据输入的模型属性表达式获取名称的相关文章

EL表达式获取对象属性的原理

EL表达式获取对象属性的原理是这样的:以表达式${user.name}为例EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找到与之匹配的方法,El表达式就会认为这就是要访问的属性,并返回属性的值. 所以,想要通过EL表达式获取对象属性的值,那么这个属性就必须有与之对应的get方法. 其实你要了解EL表达式的运行原理,它其实后台也对应的Java代码,它会先将你EL表达式中的对象属性的首字符大写,拼成getXX()方法,然后利用

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,假设浏览器没有禁用cookie的话,当浏览器再次訪问项目中的Servlet程序时会将JSESSIONID带着.这时JSESSIONID就像唯一的一把钥匙  开启server端相应的session空

Struts2框架使用(六)之ognl表达式获取值

OGNL 是对象图导航语言 Object-Graph Navigation Language 的缩写,它是一种功能强大的表达式语言. 我们可以使用ognl获取很多值. 例如 我们先编写一个Action,存入需要读取的数据. package com.mrlv.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.mrl

【JSP EL】EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <c:if test="${fn:length(list名字)>1}"&g

EL表达式获取数据

EL 全名为Expression Language. EL主要作用 获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数据.(某个web域 中的对象,访问javabean的属性.访问list集合.访问map集合.访问数组) 执行运算: •利用EL表达式可以在JSP页面中执行一些基本的关系运算.逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算.${user==null} 获取web开发常用对象 •EL 表达式定义了一些隐式对象,

关于页面EL表达式获取list集合、元素相关

之前做项目(裁判文书信息修改)的时候,遇到一些问题 1.数据树结构显示失败 页面数据显示不出来树结构,原因是因为缺少调用接口方法  ztreeNodes1 = getDeptREmp(oid); 2.json拼接的问题 //之前的拼接方法是: jsonstr = "{\"oid\":\""+oid+"\"}"; //拼接json ,\"dyfs\":\""+dyfs+"\&qu

SSH 框架controller向jsp传递List jsp中使用el表达式获取

mvc可以使用ModelAndViev传递数据选择跳转的视图 controller中的代码, 把一个模拟的表单studentListSimulate传给ModelAndView @RequestMapping("/detial") public Model showStudentDetial(Model mod) { ModelAndView mav = new ModelAndView(); mav.addObject("studentListSimulate",

如何利用EL表达式获取list,map,对象等值

<%@ page import="com.hopetesting.domain.User" %><%@ page import="java.util.*" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>el表达式获取对象属性<