Monday, 5 August 2013

Loading in Entity Framework

Loading Related Entities
Entity Framework supports three ways to load related data - eager loading, lazy loading and explicit loading. The techniques shown in this topic apply equally to models created with Code First and the EF Designer.

Eagerly Loading
Eager loading is the process where by a query for one type of entity also loads related entities as part of the query. Eager loading is achieved by use of the Include method. For example, the queries below will load blogs and all the posts related to each blog.

using (var context = new BloggingContext())
{
    // Load all blogs and related posts
    var blogs1 = context.Blogs
                .Include(b => b.Posts)
                .ToList();

    // Load one blogs and its related posts
    var blog1 = context.Blogs
                .Where(b => b.Name == "ADO.NET Blog")
                .Include(b => b.Posts)
                .FirstOrDefault();

    // Load all blogs and related posts 
    // using a string to specify the relationship
    var blogs2 = context.Blogs
                .Include("Posts").ToList();

         // Load one blog and its related posts 
        // using a string to specify the relationship
        var blog2 = context.Blogs
            .Where(b => b.Name == "ADO.NET Blog")
            .Include("Posts")
            .FirstOrDefault();

          // Load all blogs, all related posts, and all related comments
          var blogs1 = context.Blogs
            .Include(b => b.Posts.Select(p => p.Comments))
            .ToList();
}

Lazy Loading
Lazy loading means delaying the loading of related data until you specifically request it. lazy loading feature of entity framework to load the related data in scalar and navigation properties only when you use it but not at first shot. lazy loading is opposite of Eager loading.

Explicitly loading

for more info Visit : Click Here

0 comments:

Post a Comment

Topics

ADFS (1) ADO .Net (1) Ajax (1) Angular (47) Angular Js (15) ASP .Net (14) Authentication (4) Azure (3) Breeze.js (1) C# (49) CD (1) CI (2) CloudComputing (2) Coding (8) CQRS (1) CSS (2) Design_Pattern (7) DevOps (4) DI (3) Dotnet (10) DotnetCore (19) Entity Framework (4) ExpressJS (4) Html (4) IIS (1) Javascript (17) Jquery (8) Lamda (3) Linq (10) microservice (4) Mongodb (1) MVC (46) NodeJS (8) React (10) SDLC (1) Sql Server (32) SSIS (3) SSO (1) TypeScript (3) UI (1) UnitTest (2) WCF (14) Web Api (16) Web Service (1) XMl (1)

Dotnet Guru Archives