5

我有一个如图所示的表格布局。一个主表(User )和两个带有联结表的多对多表(PreferenceLocation )。我已经在数据模型中设置了正确的关系,以允许从这些 m-2-m 表中进行选择......

在此处输入图像描述

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

Linq 查询可以做到这一点吗?(我以前在 SQL 中这样做过,但在我到达这部分之前,用 Linq 编写似乎更容易!)

非常感谢,

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

4

1 回答 1

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));
于 2013-11-01T13:31:20.697 回答