在Entity Framework中加入多对多表

时间:2013-11-01 13:23:27

标签: c# entity-framework

我有一个表格布局,如图所示。一个主表(用户),以及两个包含联结表的多对多表(首选项位置)。我在数据模型中建立了正确的关系,允许从这些m-2-m表中进行选择....

enter image description here

我正在撰写的报告工具允许用户(从核对清单)选择任何用户偏好或用户位置。我想要做的是只选择用户表中的记录,其中偏好设置地理位置至少包含其中一个选项。

这是否可以使用Linq查询? (我之前在SQL中做过这个,但在我接触到这个部分之前,在Linq中编写起来似乎更容易!)

非常感谢,

编辑:Visual Studio 2012,实体框架4,SQL Server 2008 R2

1 个答案:

答案 0 :(得分:3)

from u in Users
where u.Locations.Any(l => l.Name == value) ||
      u.Preferences.Any(p => p.Title == value)
select u;

这将生成两个EXISTS子查询。 Lambda语法:

Users.Where(u => u.Locations.Any(l => l.Name == value) ||
                 u.Preferences.Any(p => p.Title == value));