通用解决方案:解决NHibernate SELECT 多表查询结果List绑定控件显示问题。

(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控件的时候列不要自动生成,手工指定即可。

原文地址:https://www.cnblogs.com/dongdong/p/1338970.html