有代码:
   
Type type = model.GetType();
PropertyInfo[] infos = type.GetProperties();
    获得一个模板类的公共属性 ,模板类与数据库表字段一致 , 于是根据属性的顺序来拼接T-SQL
测试的时候发现  如果重复的点击按钮(就是狂点保存) GetProperties()获得的属性顺序是乱的... — —
    去MSDN上查文档如下:
 GetProperties 方法不按特定的顺序(如字母顺序或声明顺序)返回属性。 您的代码一定不能依赖于属性的返回顺序,因为该顺序可以改变。       这到底是什么原因?  如何解决?

解决方案 »

  1.   

    如果你想有序,那么获得之后,对Name再排序下就行了。
      

  2.   

    msdn都给你解释了,还让谁给你解释,不行就自己在本地进行一下按照你的规则排序吧
      

  3.   


    如果这样说,那么你就不是说 GetProperties() 结果的顺序了。而是你自己的程序会把不同的请求(多次请求)的结果冲突在一起,你自己好好看看有没有滥用什么static变量冲突之类的吧。
      

  4.   


    Insert 把字段都列出来。还有干撒要用反射做?
      

  5.   

    程序依赖GetProperties()返回属性顺序才是奇怪的现象
    想下,假如你的项目后来是另外一个人维护,别人就是移动了下属性定义的顺序,就能把你的程序搞挂了,也把别人搞郁闷了