我使用EF 4.1,其中三个表以m-n关系映射。我是Linq的新手,所以对大多数人来说这将是一件容易的事。
表格是用户 - > Users_Rights_Map - >版权
......一个经典的m-n。
我想找到所有RightID为1的用户,例如。
var r = from u context.Users
where u.Rights.Select(r => r.RightID == 1)
select u;
......不起作用。
正确的LINQ查询是什么样的?
答案 0 :(得分:4)
尝试
var users = from u in context.Users
where u.Rights.Any(r => r.RightID == 1)
select u;
答案 1 :(得分:4)
您的查询语法错误(in
不在您的查询中)并且您应该使用某些条件函数来使条件不使用select
。
var r = from u in context.Users
where u.Rights.Any(r => r.RightID == 1)
select u;
对于linq启动和培训, 编辑我觉得有必要查看101 linq sample。
对于Any
您可以看到量词,有Any
,All
等样本。特别是你的案子包括在那里。