EF - 具有三个或更多字段的纯连接表

时间:2014-06-12 08:03:43

标签: c# sql entity-framework rdbms

此时我知道如何使用M:N关系的两个字段进行PJT,但我想知道是否可以使用三个或更多字段来处理几个M:N关系。我有一个例子:

三个表,活动,用户,客户。我想知道是否可能,只有实体的导航属性执行以下操作:查找由一个用户执行的一个客户端的活动:

ActivitySet selectedActivities = ClientSet
  .First(c => c.Id == enteredId)
  .Activities.Find(a => a.UserId == enteredUserId);

或任何可能的组合。

2 个答案:

答案 0 :(得分:1)

这是可能的,但你需要从你想要的实体向相反的方向前进。备份。

Activities
  .Where(a => a.Client.Id == enteredId)
  .Where(a => a.User.Id == enteredUserId)

答案 1 :(得分:0)

你可以这样做吗?

var activities = (from c in ClientSet
                  from a in c.Activities
                  where c.Id = enteredId && a.UserId = enteredUserId);