在Entity Framework中加入多对多表

Sim*_*mon 5 c# entity-framework

我有一个表格布局,如此图所示.一个主表(User)和两个带有连接表的多对多表(PreferenceLocation).我在数据模型中建立了正确的关系,允许从这些m-2-m表中进行选择....

在此输入图像描述

我正在编写的报告工具允许用户(从清单中)选择任何用户首选项或用户位置.我想做的是只选择用户表中的偏好位置包含至少一个选项的记录.

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

非常感谢,

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

Ser*_*kiy 3

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

这将生成两个 EXISTS 子查询。拉姆达语法:

Users.Where(u => u.Locations.Any(l => l.Name == value) ||
                 u.Preferences.Any(p => p.Title == value));
Run Code Online (Sandbox Code Playgroud)