这是我的询问。
var query = from g in dc.Group
join gm in dc.GroupMembers on g.ID equals gm.GroupID
where gm.UserID == UserID
select new {
id = g.ID,
name = g.Name,
pools = (from pool in g.Pool
// more stuff to populate pools
所以我必须执行一些过滤,但是当我尝试过滤
时var filter = query.Where(f => f.pools.[no access to list of columns]
我无法访问“池”中的任何项目。有谁知道我怎么能访问它?
我想做的是:
var filterbyGame = query.Where(f = > f.pools.GameName == "TestGame");
如果我有这个设置,请告诉我这是否可能。
谢谢你们。
答案 0 :(得分:4)
在您的查询中,您无法执行Where(f => f.pools.GameName) 因为f是IEnumerable<>
这样的事情应该有效:
Where(f => f.pools.Any(p => p.GameName == "TestGame"))
答案 1 :(得分:2)
pools
是枚举,而不是单个实例。这就是为什么你没有得到列名。
您需要将过滤器更改为:
var filterByGame = query.Where(f => f.pools.Any(p => p.GameName == "TestGame"));