这是数据库开发中经常遇到的问题,当然,这可以用现成的ORM框架来解决,但有些时候,如果DataSet/DataTable是第三方接口返回的,ORM就不方便了,还得自己处理。
反射自然必不可少的,另外考虑到DataTable中的ColumnName通常与Model的PropertyName并不严格对应,可以用Attribute来记录这种映射关系。
步骤1:先创建一个DataFieldAttribute类
1 using System; 2 3 namespace Jimmy.ORM 4 { 5 [AttributeUsage(AttributeTargets.Property)] 6 public sealed class DataFieldAttribute:Attribute 7 { 8 /// <summary> 9 /// 表对应的字段名 10 /// </summary> 11 public string ColumnName { set; get; } 12 13 public DataFieldAttribute(string columnName) 14 { 15 ColumnName = columnName; 16 } 17 } 18 }