我有一个表格布局,如图所示。一个主表(用户),以及两个包含联结表的多对多表(首选项和位置)。我在数据模型中建立了正确的关系,允许从这些m-2-m表中进行选择....
我正在撰写的报告工具允许用户(从核对清单)选择任何用户偏好或用户位置。我想要做的是只选择用户表中的记录,其中偏好设置或地理位置至少包含其中一个选项。
这是否可以使用Linq查询? (我之前在SQL中做过这个,但在我接触到这个部分之前,在Linq中编写起来似乎更容易!)
非常感谢,
编辑:Visual Studio 2012,实体框架4,SQL Server 2008 R2
答案 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));