通过Entity Framework将相关的表字段添加到类中

时间:2016-07-05 19:23:49

标签: c# asp.net entity-framework

每个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。如果你打算投票,请说明原因。否则我怎么知道如何改进我的问题?

1 个答案:

答案 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用于类和属性名称。