1

在我的 C# 应用程序中,我使用 NHibernate 从我的数据库表“房间”中获取所有房间。

using (ISession pSession = NHibernateHelper.OpenSession())
            {
                IList<Room> roomList = pSession.QueryOver<Room>().
                                                Where(x => x.FloorID == 3).
                                                .List();
            }

表“房间”以及我的映射类(Room.cs)包含让我们说以下属性:

roomID
hash
date
identifier

我有一个 DataGridView,它应该显示数据库中的表条目:代码是:

 roomDataGridView.DataSource = roomList;

到目前为止效果很好。但现在我决定不想显示 Room 类的所有属性,我只想显示

roomID
identifier

我尝试了以下方法:

roomDataGridView.DataSource = listOfRoomPropertiesForCurrentFloor.Select(x => new {x.Identifier, x.RoomID });

不幸的是,这不起作用...在我的 DataGridView 中没有打印任何内容。

问题:如何将房间表中的所有属性存储在我的房间模型中,但在 DataGridView 中只显示四个属性中的两个?

4

2 回答 2

2

确保您的列名在 DataGridView 中定义并创建对象,基本上将 x.Identifier 分配给名称“Identifier”,以便可以拾取并调用该ToList()函数

roomDataGridView.DataSource = listOfRoomPropertiesForCurrentFloor
                              .Select(x => new {Identifier = x.Identifier, RoomID = x.RoomID }).ToList();
于 2012-12-04T13:43:30.410 回答
1

期望 DataGridView 属性AutoCreateColumns应设置为 true。已经有答案了:

提炼:

用属性标记不应该显示的属性[Browsable(false)]

于 2012-12-04T14:08:22.820 回答