利用反射更新类

      #region 利用反射更新类
        /// <summary>
        /// 利用反射更新类
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="entity"></param>
        /// <param name="db"></param>
        public static void UpdateModel<T>(T entity, DbContext db) where T : class
        {
            db.Set<T>().Attach(entity);
            foreach (System.Reflection.PropertyInfo p in entity.GetType().GetProperties())
            {
                //if (p.GetValue(entity) != null&&p.GetValue(entity).ToString()!= "&nbsp;")
                if (p.GetValue(entity) != null)
                {
                    db.Entry(entity).Property(p.Name).IsModified = true;
                }
            }
            db.SaveChanges();
        }
        #endregion
时间: 2024-12-10 00:45:18

利用反射更新类的相关文章

Java反射(二)利用反射分析类的能力

利用反射分析类能力的类的源码如下(来源于<Java核心技术>卷一): package testreflection; import java.util.*; import java.lang.reflect.*; /** * 这个类利用反射打印出一个类的所有特征 * * @version 1.1 2004-02-21 * @author Cay Horstmann */ public class ReflectionTest { public static void main(String[]

读取配置文件,利用反射给类属性赋值,

背景:项目中用的全局变量,一般通过形如 pubic static final String ABC="abc";然后在项目中用类.属性名的方式调用. 如果变量的值并不固定.比如不同客户定义的值不同,就不能用final修饰.只能用public static String ABC;方式来声明,也可加默认初始值: 这个时候我们就需要一个初始化方法(init())来对变量进行初始化赋值,让其变得有意义. 因为值需要从配置文件中读取,传统方法,可能是根据属性的set方法一个一个设置.假如有10个

利用反射实现类通用的DAO层

public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; Connection con=null; //获取表名 Class c= object.getClass(); String className=c.getName(); String declareName=className.substring(className.lastIndexOf(".&q

利用反射——查看类的声明

/** *类的声明包括常见修饰符(public.protected.private.abstract.statc.final等). * 类的名称.类的泛型参数.类的集成类(实现的接口)和类的注解等 * Class类的实例表示正在运行的Java应用程序中的类和接口. * 枚举是一种类,注解是一种接口 * 每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象. * Java的基本类型和关键字void也表示为Class对象,但没有构造方法 * Class对

利用反射——查看类的成员

在一个类的内部,一般包括成员变量.构造方法.普通方法和内部类等 public class ClassViewer { @SuppressWarnings("rawtypes") public static void main(String[] args) throws ClassNotFoundException { Class<?> clazz = Class.forName("java.util.ArrayList"); System.out.pri

jav利用反射修改类的静态变量

有Student这个类: public class Student { private static String schoolName=""; private static String schoolArea= ""; private static boolean isSetValue= false; private String name; private int age; public String getName() { return name; } pub

java 利用反射获取类对象中List的值

Field[] fields = Object.getClass().getDeclaredFields();//Object是已经被赋值的对象实例 for (Field field : fields) {if (!field.isAccessible()) { field.setAccessible(true); } if (List.class.isAssignableFrom(field.getType())) { Type t = field.getGenericType(); if (

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理 2018-3-10 15:18 | 发布:Admin | 分类:代码库 | 评论:0 | 浏览:45 | 该类在MVC中可以方便管理配置信息,可以直接把Model储存进数据库或者从数据库去除数据转为Model. 1 何为配置项目? 比如网站的名称,页脚信息,meta中的KeyWord信息等,如果不想硬编码到网页里,就需要使用配置文件进行储存,通常都是储存到数据库中.使用的时候读取出来

C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

转自goldeneyezhang原文 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi