abe*_*end 1 c# linq entity-framework-4
我有这样的架构
包 - >列表 - >用户
所有'一对多'都在线下......
所以我想运行一个查询,我获得userID在用户中匹配的所有包.
var pck = (from pk in context.Package
where pk.Lists[here's my problem]
Run Code Online (Sandbox Code Playgroud)
我假设这里的导航属性是:pk.Lists. *Users.UserId* == MyUserId但是我没有在列表级别看到导航属性.
我还没有得到像这样更复杂的EF查询.我环顾网络但没找到任何东西让它点击.我转向你堆叠.有人帮我看光!
编辑:再次感谢堆栈,我会尽我所能支付它!而且,所有这些答案都让我对ef4的力量有了启发!
我假设一个包包含多个列表,一个列表包含多个用户?你可以尝试:
var pck = content.Package
// Outdented just for Stack Overflow's width
.Where(pk => pk.Lists.Any(list => list.Any(u => u.UserId == myUserId)));
Run Code Online (Sandbox Code Playgroud)
或者使用交叉连接:
var pck = from pk in content.Package
from list in pk.Lists
from user in list.Users
where user.UserId == myUserId
select ...; // Select whatever you're interested in
Run Code Online (Sandbox Code Playgroud)