你的位置:首页 > 软件开发 > ASP.net > 【转】利用反射快速给Model实体赋值

【转】利用反射快速给Model实体赋值

发布时间:2016-04-15 16:00:30
原文地址:http://blog.csdn.net/gxiangzi/article/details/8629064试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有120多个字段。现在合同每一次变更时都需要对合同原始信息进行归档一次,版本号依次递 ...

原文地址:http://blog.csdn.net/gxiangzi/article/details/8629064

试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有120多个字段。现在合同每一次变更时都需要对合同原始信息进行归档一次,版本号依次递增。那么我们就要新建一张合同历史表,字段跟原合同表一模一样,此外多了一个 合同版本号 字段。在归档时如何把原始合同信息插入到合同历史表呢?

        很容易就能想到的一种解决方法:

insert into 合同历史表(字段1,字段2,字段3…………字段120,版本号) select   字段1,字段2,字段3…………字段120,0 as 版本号 from 合同表 where 合同ID=‘xxxxxxx’

这样当然是能实现我们的功能的,但是看到了吗?由于表的字段太多,导致SQL看起来很不优雅,而且字段之间的对应很容易出问题。联想起之前看过的 利用反射给model赋值的例子想出来下面的一个解决方法:

       现在假设两个实体class1、class2,class2只比class1多一个字段newid,其它字段一模一样。简单定义如下:

class Class1   {     private get='_blank'>string id;      public string Id     {       get { return id; }       set { id = value; }     }     private string name;      public string Name     {       get { return name; }       set { name = value; }     }     private int age;      public int Age     {       get { return age; }       set { age = value; }     }     private int num;      public int Num     {       get { return num; }       set { num = value; }     }    } 

原标题:【转】利用反射快速给Model实体赋值

关键词:反射

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。