2012-12-04 65 views
1

在我的C#應用​​程序中,我使用NHibernate從我的數據庫表'房間'中獲取所有房間。C#NHibernate QueryOver選擇多個屬性

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; 

到目前爲止工作正常。但現在我決定,我不想顯示從房間級的所有屬性,我只想顯示

roomID 
identifier 

我試過如下:

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

不幸的是這不工作...沒有得到打印在我的DataGridView。

問題:如何在房間模型中存儲房間表中的所有屬性,但只顯示DataGridView中四個屬性中的兩個?

回答

2

確保您的列名在DataGridView定義和創建對象,基本上x.Identifier分配到名稱「識別」,因此它可以被拾起,並調用ToList()功能

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