0
这是我正在看的。假设我有一个具有多个属性的类。我试图写一个看起来像这样如何编写使用属性名称填充属性的方法?
public static void GetNullableInt32(this DbDataReader reader, Type property)
{
property = reader.IsDBNull(reader.GetOrdinal(property.name))
? (int?)null
: reader.GetInt32(reader.GetOrdinal(property.name));
}
凡属性名称都是从反射拉的方法,并且属性是在方法中设置。我把Type中的参数作为占位符来放入它需要的任何类型。然后我会这样称呼它:
reader.GetNullableInt32(Class.Property1);
从数据库读取器设置类的所有属性。
有没有简单的方法来做到这一点?或者是否有更好的结构,而不必将字段名称作为字符串输入,而是从列名称中提取?
编辑
在回答删除评论问,为什么我们不只是传递的字符串名称,使用的代码看起来像
Class item = new Class {
ContactRelationId = reader.IsDBNull(reader.GetOrdinal("ContactRelationId"))
? (int?)null
: reader.GetInt32(reader.GetOrdinal("ContactRelationId"))}
而流传下来的是要求我们不应该将包过程存储为字符串。