//获取单实体 public List <T> GetEntity(SqlDataReader dr) { List <T> list = new List <T>(); if (dr.HasRows) { while (dr.Read()) { T destObj = new T(); foreach (PropertyInfo prop in typeof(T).GetProperties()) { try { if (prop.IsDefined(typeof(FieldNameAttribute), true)) { FieldNameAttribute attribute = prop.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute; prop.SetValue(destObj, ChangeType(prop.PropertyType, dr[attribute.FieldName])); } else { prop.SetValue(destObj, ChangeType(prop.PropertyType, dr[prop.Name])); } } catch { } } list.Add(destObj); } } return(list); }
//获取实体的SqlParameter public SqlParameter[] GetSqlParameter(T t) { PropertyInfo[] property = t.GetType().GetProperties(); List <SqlParameter> parameters = new List <SqlParameter>(); foreach (var item in property) { if (item.IsDefined(typeof(FieldNameAttribute), true)) { FieldNameAttribute attribute = item.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute; if (string.IsNullOrEmpty(item.GetValue(t)?.ToString())) { parameters.Add(new SqlParameter("@" + attribute.FieldName, DBNull.Value)); } else { parameters.Add(new SqlParameter("@" + attribute.FieldName, item.GetValue(t))); } } else { if (string.IsNullOrEmpty(item.GetValue(t)?.ToString())) { parameters.Add(new SqlParameter("@" + item.Name, DBNull.Value)); } else { parameters.Add(new SqlParameter("@" + item.Name, item.GetValue(t))); } } } return(parameters.ToArray()); }
//获取查询的列名 public object[] Columns() { T model = new T(); ArrayList columnList = new ArrayList(); //处理查询的列名 foreach (PropertyInfo item in model.GetType().GetProperties()) { //判断是否有别名 if (item.IsDefined(typeof(FieldNameAttribute), true)) { FieldNameAttribute attribute = item.GetCustomAttributes(typeof(FieldNameAttribute), true)[0] as FieldNameAttribute; columnList.Add(attribute.FieldName); } else { columnList.Add(item.Name); } //。。。可添加另外的 } return(columnList.ToArray()); }