每个building
都有多个rooms
。我想从building
返回包含所述room
所拥有的building
的房间号码的数据,通过类buildingView
,现在看起来像这样(带有一些伪代码):
public class buildingView
{
public int id { get; set; }
public string name { get; set; }
...
public *something* roomNumbers *something*
}
为此,我有以下查询:
buildingView building = db.buildings.Select(b => new buildingView
{
id = b.id,
name = b.name,
...
roomNumbers = *I have no idea*
})
.Where(b => b.id == id)
.SingleOrDefault();
房间号码都是字符串,如果相关的话。
我的问题:
如何获取房间号码列表?
如何改进我的问题标题?我现在缺乏词汇来做得更好。
还有另一种方法吗?
谢谢!
P.S。如果你打算投票,请说明原因。否则我怎么知道如何改进我的问题?
答案 0 :(得分:1)
假设你有一个类......
class Building
{
...
public ICollection<Room> Rooms { get; set; }
}
那BuildingView
是......
public class BuildingView
{
public int Id { get; set; }
public string Name { get; set; }
...
public IEnumerable<string> RoomNumbers { get; set; }
}
...您可以按如下方式获取连锁的房间号码:
var buildingViews = context.Buildings
.Select(b => new BuildingView
{
Id = b.Id,
Nems = b.Name,
RoomNumbers = b.Rooms
.Select(r => r.Number)
});
附注:我们建议使用C#命名约定,例如PascalCase用于类和属性名称。