Search code examples
entity-frameworkentity-framework-4includeef-code-first

How to limit number of related data with Include


class Cat
{
   public int CatID;
   public string Name;
   public ICollection<Post> Posts;
}
class Post
{
   public int PostID;
   public string Name

   public int CatID;
   public virtual Cat Parent;
}

And I want to load all the Cat(egories) with their Posts so:

var cats = context.Cat.Include(c => c.Posts);

Now I want to limit the number of Posts that are returned, can someone show me how to do that?

I'm using EntityFramework 4.3.1


Solution

  • It is not possible with eager loading (Include) - eager loading returns always all related data. You must use projections to anonymous or new type (you cannot use your existing mapped entities):

    var cats = context.Cat.Select(c => new 
    { 
        Category = c, 
        Posts = c.Posts.OrderBy(p => p.Name).Take(10) 
    });