DBContext和导航属性

时间:2012-12-04 20:53:06

标签: linq entity-framework entity-framework-4.1 dbcontext

好的,我被卡住了。我有一个模型,它有一个“USER”实体,一个“CLUB”实体和一个“MEMBERSHIP”实体。 “MEMBERSHIP”实体是“USER”与“CLUB”的关联。用户可以拥有多个俱乐部,俱乐部可以拥有许多用户。

我无法弄清楚如何获得特定用户的俱乐部列表。

我无法找到关于如何构建此查询的好例子。

我似乎遇到了问题,因为导航属性是一个集合。

任何人都可以指出我正确的方向,谢谢。

1 个答案:

答案 0 :(得分:1)

这取决于Membership表。如果table只是简单的关联,它有UserId和ClubId,那么就不会生成Membership实体,你应该这样查询:

var clubs = context.Users
                   .Where(u => u.Id == id)
                   .SelectMany(u => u.Clubs);

如果关联不那么简单,那么将生成Membership实体,您应该通过会员资格导航到俱乐部,如下所示:

var clubs = context.Users
                   .Where(u => u.Id == id)
                   .SelectMany(u => u.Memberships)
                   .Select(m => m.Club);