如何选择集合类型导航属性的值

时间:2012-03-23 07:40:49

标签: linq entity-framework eager-loading

我有3个表,团队(id,name)玩家(id,teamid,name)playerdetail(id,playerid,height,weight),团队和玩家之间的关系是一对多,玩家和玩家之间的关系detail是一比一。

我想使用预先加载来加载所有信息并打印出高于2米的玩家的名字。

我已经写了下面的代码,

using (var context = new TestEntities())
            {
                var query = from t in context.Teams.Include("Players.PlayerDetails") select t;
                foreach (var v in query)
                {
                    Console.WriteLine(v.Players.Any(x => x.PlayerDetails.Any(y => y.Height > 200)));
                }
                Console.Read();
            }

它只打印出真假,如何修改它并打印出播放器名称? 提前致谢

1 个答案:

答案 0 :(得分:1)

为什么不直接通过context.Players查询玩家?

        using (var context = new TestEntities())
        {
            var query = context.Players.Include("Team").Include("PlayerDetails")
                           .Where(p => p.Height > 200);
            foreach (var v in query)
            {
                Console.WriteLine(v.Name);
            }
            Console.Read();
        }