我是想根据实体类来获取数据,但是这个实体类要求是动态的,也就是说我可以随意的在实体类里添加或删除属性、方法,而在需求改变的时候,比如要多获取一个数据就只需要在实体类里对应的添加一个属性就可以获取到我要的数据了。
希望各位高人指点。如果不清楚,我再补充……

解决方案 »

  1.   

    PropertInfo [] _PropertList= 实体类.GetType().GetProperties();_PropertList[0].Name //属性名
    _PropertList[0].PropertyType //数据类型_PropertList[0].GetValue(实体类,new object[]{}); //取数据_PropertList[0].SetValue(实体类,数据,new object[]{}); //取数据
      

  2.   

    使用ActiveRecord框架就可以了。 
    要了解ActiveRecord框架,请参考:terrylee.cnblogs.cn
      

  3.   

    不太明白你需要什么。
    一般来讲,或者更多的是先确定好实体类,然后再有数据库那边的结构,也就是说,如果你往实体类中新加入了一个属性,那么,当你对该实体类进行持久化的时候,数据库在表的结构上就会自动多出一个字段来保存你的新属性。不过貌似目前的ORM都不具备这种动态功能,换句话说,才用现有的ORM,当实体类中加入了新属性,数据库schema是要手动修改的。
    如果你希望在程序运行过程中动态的增加实体类中的属性,我想,只能依靠反射和CodeDom的代码动态生成。但总是觉得这样的设计并不一定是很好的,因为临时构建代码模块并做编译,效率上估计要打折扣。
      

  4.   

    世上根本就不存在所谓好的设计
    只有适合和不适合如果纯粹是了用而用,那没多大意思以前写过一个简单的
    你参考下
    http://blog.csdn.net/lovefootball/archive/2008/09/03/2872083.aspx
      

  5.   

    在运行中随意修改一个类的属性或者方法,这个倒有一点难度哦,如果用反射加CodeDom技术来实现的话也行,不过这样代码就会很乱了,不好控制。
      

  6.   

    http://topic.csdn.net/u/20081218/16/9eaa37a4-a5fb-4288-a134-6ff68d2ffc7f.html