繁体   English   中英

选择实体 ef linq 的属性

[英]select properties of entity ef linq

我有一个对象列表(例如房间)的查询,其中包含一个对象(例如门)门有许多属性(例如宽度、高度、颜色),但我只需要颜色。

我现在有

Rooms.include(r => r.Door) 

但这需要门的所有属性。 如果我做

Rooms.include(r => r.Door.color) 

比它说颜色不是门的导航属性。

我怎样才能只选择颜色?

我希望我说清楚了。 任何帮助表示赞赏

Include 不用于选择,它用于告诉编译器该属性应包含在查询中。 只需使用选择来获取颜色并在选择中包含房间。

编辑:在提供附加信息后编辑了答案。

Rooms.Select(r => new { Color = r.Door.color, Room = r });

不幸的是,您不能有条件地加载相关实体的属性 - 您要么加载整个门实体,要么不包含该实体。 但是你可以使用匿名类型来返回房间和门的颜色:

 var rooms = from r in db.Rooms
             select new {
                 Room = r,
                 DoorColor = r.Door.Color
             };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM