我可以在Linq查询中的“包含”实体上执行“Take(x)”吗?

时间:2010-09-19 07:34:52

标签: linq linq-to-entities include projection

我有一个非常简单的linq to entites声明: -

var query = (from q in Users.Include("UserHistory")
            select q).Take(20);

效果很好......除了每个用户......历史记录可以是n + 1。有些用户拥有100条UserHistory条记录。

那么,我可以将UserHistory记录的数量限制为10或5或其他吗?

我是否需要使用投影?可以在没有投影的情况下完成吗?

1 个答案:

答案 0 :(得分:0)

你不能通过使用include来做到这一点,但你可以试试这个:

var query =
    from user in Users
    select new
    {
        user, 
        history = user.UserHistory.Take(20) 
    };

我不确定EF是否能够创建一个单独的SQL查询。