我查询了包含对象的对象列表(ex Rooms)(ex Door) 门有许多属性(ex宽度,高度,颜色),但我只需要颜色。
现在我有
Rooms.include(r => r.Door)
但这会占用门的所有属性。 如果我做了
Rooms.include(r => r.Door.color)
比它说颜色不是门的导航属性。
我怎样才能选择颜色?
我希望自己清楚明白。任何帮助表示赞赏答案 0 :(得分:1)
Include不用于选择,它用于告诉编译器该属性应该包含在查询中。只需使用选择来获取颜色,并在选择中包含房间。
编辑:在提供其他信息后编辑了答案。
Rooms.Select(r => new {Color = r.Door.color, Room = r) ;
答案 1 :(得分:1)
不幸的是,您无法有条件地加载相关实体的属性 - 您要么加载整个门实体,要么不包含该实体。但是你可以使用匿名类型来返回它的门的颜色和空间:
var rooms = from r in db.Rooms
select new {
Room = r,
DoorColor = r.Door.Color
};