开发者

Can I do a "Take(x)" on the "Include" entity in a Linq Query?

i've got a really simple linq to entites statement :-

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

works great ... except that, for each use开发者_如何学Gor .. the history can be n+1. Some users have 100's of UserHistory records.

So, can I restrict the the number of UserHistory records to .. 10 or 5 or whatever?

Do I need to use projections for this? Can it be done without projections?


You can't do this by using the include, but you can try this:

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

I'm not sure whether EF is able to create one single SQL query of of it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜