{"id":5660,"date":"2022-03-09T04:38:22","date_gmt":"2022-03-09T04:38:22","guid":{"rendered":"https:\/\/studysection.com\/blog\/?p=5660"},"modified":"2022-03-09T05:03:21","modified_gmt":"2022-03-09T05:03:21","slug":"lazy-loading-in-c","status":"publish","type":"post","link":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/","title":{"rendered":"Lazy Loading in C#"},"content":{"rendered":"<p><strong>Lazy Loading<\/strong> is a technique that delays the initialization of an object. This is a new feature of <a href=\"https:\/\/studysection.com\/blog\/quick-introduction-to-c\/\">C#<\/a> 4.0. The basic idea of lazy loading is to load objects or data only when they are needed. A lazy loading pattern is also called Object on Demand. In other words, initialization of the object happens only on demand. <\/p>\n<h2>When to use Lazy loading?<\/h2>\n<p>It can be used when we are working with large objects when it is not in use. It is essential when the cost of object creation is very high and the use of the object is very rare.<\/p>\n<h3>Let us understand this through a real-time scenario:<\/h3>\n<p>Suppose we want to create an object of Customer class and the Customer class has a list of orders. So, when a new instance of Customer class is created, the order list will also be loaded at the same time. If in case, the order list is long, that will take a longer execution time and we may not need those data while fetching other Customer class property. Here, we can use the concept of lazy loading to load the data only when it is required.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/code01.png\" alt=\"code01\" width=\"744\" height=\"555\" \/><br \/>\n In the above example, the order object is also loaded even if it is not required. <\/p>\n<p>To implement lazy loading, remove the loading of the <strong>Order<\/strong> object from the constructor, and in the <strong>Order<\/strong> get property, load the <strong>Order<\/strong> object only if it is not loaded as shown below:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/code02.png\" alt=\"code02\"\/><\/p>\n<p>Now let us suppose, our Customer class is consumed by client code and if we run our client code then our Orders object is null i.e not loaded but as soon as the control reaches foreach loop, it will create the Order object collection. <\/p>\n<p>In .Net, we have the <strong>Lazy&lt;T><\/strong> class which provides automatic support for lazy loading. We can modify our code using the Lazy Generic class by following the below steps.<\/p>\n<ol>\n<li>Create the object of orders using the Lazy generic class<br \/>\n<img decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/code03.png\" alt=\"code03\"\/>\n<\/li>\n<li>Attach this Lazy <strong>&lt;><\/strong> object with the method which will load the order\u2019s data.<br \/>\n<img decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/code04.png\" alt=\"code04\" \/>\n<\/li>\n<\/ol>\n<p>Now as soon as any client makes a call to the _Orders object, it will call the LoadOrders function to load the data as shown in the below code:<br \/>\n<img decoding=\"async\" src=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/code05.png\" alt=\"code05\" \/><\/p>\n<h3>Advantages of Lazy loading: <\/h3>\n<ul>\n<li>It helps to develop applications with high performance. <\/li>\n<li>It also saves resources by delaying the initialization of expensive objects until they are needed. <\/li>\n<li>It avoids unnecessary computation and memory consumption.<\/li>\n<li>It minimizes the start up time of the application.<\/li>\n<li>It avoids unnecessary database SQL execution.<\/li>\n<\/ul>\n<p><strong>Disadvantages of Lazy loading:<\/strong> The only disadvantage is that the code becomes quite complicated as we need to check whether loading of those high cost objects is needed or not due to which there is a slight decrease in performance.<\/p>\n<p><small><em>If you need to prove your skills in the .NET framework, get .NET certified on StudySection. StudySection provides <a href=\"https:\/\/www.studysection.com\/c-sharp-net-web-developer-foundation-diploma\">.NET certification exam<\/a> for beginners as well as experts in the .NET framework. This .NET certification can improve your resume\u2019s success rate.<\/em><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lazy Loading is a technique that delays the initialization of an object. This is a new feature of C# 4.0.<\/p>\n","protected":false},"author":1,"featured_media":5668,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[142,766],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Lazy Loading in C# - StudySection Blog<\/title>\n<meta name=\"description\" content=\"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Lazy Loading in C# - StudySection Blog\" \/>\n<meta property=\"og:description\" content=\"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Posts on famous people, innovations and educational topics\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/studysection\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-09T04:38:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-09T05:03:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/Lazy-Loading-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin-studysection-blog\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@studysection\" \/>\n<meta name=\"twitter:site\" content=\"@studysection\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin-studysection-blog\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\"},\"author\":{\"name\":\"admin-studysection-blog\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\"},\"headline\":\"Lazy Loading in C#\",\"datePublished\":\"2022-03-09T04:38:22+00:00\",\"dateModified\":\"2022-03-09T05:03:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\"},\"wordCount\":507,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"keywords\":[\"C\",\"Loading\"],\"articleSection\":[\"Learn and Grow\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\",\"url\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\",\"name\":\"Lazy Loading in C# - StudySection Blog\",\"isPartOf\":{\"@id\":\"https:\/\/studysection.com\/blog\/#website\"},\"datePublished\":\"2022-03-09T04:38:22+00:00\",\"dateModified\":\"2022-03-09T05:03:21+00:00\",\"description\":\"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.\",\"breadcrumb\":{\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/studysection.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lazy Loading in C#\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/studysection.com\/blog\/#website\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"name\":\"Blog Posts on famous people, innovations and educational topics\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/studysection.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/studysection.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/studysection.com\/blog\/#organization\",\"name\":\"StudySection\",\"url\":\"https:\/\/studysection.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"contentUrl\":\"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png\",\"width\":920,\"height\":440,\"caption\":\"StudySection\"},\"image\":{\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/studysection\",\"https:\/\/twitter.com\/studysection\",\"https:\/\/www.instagram.com\/study.section\/\",\"https:\/\/www.linkedin.com\/company\/studysection\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402\",\"name\":\"admin-studysection-blog\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g\",\"caption\":\"admin-studysection-blog\"},\"url\":\"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Lazy Loading in C# - StudySection Blog","description":"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/","og_locale":"en_US","og_type":"article","og_title":"Lazy Loading in C# - StudySection Blog","og_description":"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.","og_url":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/","og_site_name":"Blog Posts on famous people, innovations and educational topics","article_publisher":"https:\/\/www.facebook.com\/studysection","article_published_time":"2022-03-09T04:38:22+00:00","article_modified_time":"2022-03-09T05:03:21+00:00","og_image":[{"width":300,"height":200,"url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2022\/03\/Lazy-Loading-1.png","type":"image\/png"}],"author":"admin-studysection-blog","twitter_card":"summary_large_image","twitter_creator":"@studysection","twitter_site":"@studysection","twitter_misc":{"Written by":"admin-studysection-blog","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#article","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/"},"author":{"name":"admin-studysection-blog","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402"},"headline":"Lazy Loading in C#","datePublished":"2022-03-09T04:38:22+00:00","dateModified":"2022-03-09T05:03:21+00:00","mainEntityOfPage":{"@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/"},"wordCount":507,"commentCount":0,"publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"keywords":["C","Loading"],"articleSection":["Learn and Grow"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/","url":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/","name":"Lazy Loading in C# - StudySection Blog","isPartOf":{"@id":"https:\/\/studysection.com\/blog\/#website"},"datePublished":"2022-03-09T04:38:22+00:00","dateModified":"2022-03-09T05:03:21+00:00","description":"Lazy Loading is a technique that delays the initialization of an object. The basic idea of lazy loading is to load objects.","breadcrumb":{"@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/studysection.com\/blog\/lazy-loading-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/studysection.com\/blog\/lazy-loading-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/studysection.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Lazy Loading in C#"}]},{"@type":"WebSite","@id":"https:\/\/studysection.com\/blog\/#website","url":"https:\/\/studysection.com\/blog\/","name":"Blog Posts on famous people, innovations and educational topics","description":"","publisher":{"@id":"https:\/\/studysection.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/studysection.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/studysection.com\/blog\/#organization","name":"StudySection","url":"https:\/\/studysection.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","contentUrl":"https:\/\/studysection.com\/blog\/wp-content\/uploads\/2021\/10\/studySection-logo.png","width":920,"height":440,"caption":"StudySection"},"image":{"@id":"https:\/\/studysection.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/studysection","https:\/\/twitter.com\/studysection","https:\/\/www.instagram.com\/study.section\/","https:\/\/www.linkedin.com\/company\/studysection"]},{"@type":"Person","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/db367e2c29a12d1808fb1979edb3d402","name":"admin-studysection-blog","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/studysection.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054ac87a6874df1932004239cd8eab36?s=96&d=mm&r=g","caption":"admin-studysection-blog"},"url":"https:\/\/studysection.com\/blog\/author\/admin-studysection-blog\/"}]}},"views":16421,"_links":{"self":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5660"}],"collection":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/comments?post=5660"}],"version-history":[{"count":2,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5660\/revisions"}],"predecessor-version":[{"id":5669,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/posts\/5660\/revisions\/5669"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media\/5668"}],"wp:attachment":[{"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/media?parent=5660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/categories?post=5660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/studysection.com\/blog\/wp-json\/wp\/v2\/tags?post=5660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}