(1)NHibernate SELECT 多表查询结果List是一个二维数组,无法直接绑定界面Grid控件,不赞成对每一个查询单独增加一个类解决显示问题。
(2)建立一个类ConmmonNH,有20个string的属性,属性名(Col0-Col19)。(如果觉得所有程序界面显示字段超过20,可以增加属性)
(3)实现方法ConvertToConmmonNH,代码如下:
public IList<ConmmonNH> ConvertToConmmonNH(IList list)
{
IList<ConmmonNH> arr = new List<ConmmonNH>();
foreach (object[] obj in list)
{
ConmmonNH con = new ConmmonNH();
for (int i = 0; i < obj.Length; i++)
{
con.GetType().GetProperty("Col" + i.ToString()).SetValue(con, obj[i].ToString(), null);
}
arr.Add(con);
}
return arr;
}
(4)转换过的结果可以直接绑定界面Grid控件,需要说明的是因为实际查询的字段数目不等,多余的字段值为空,绑定Grid控件的时候列不要自动生成,手工指定即可。