Entity Framework: eager and lazy loading

  • lazy loading:
    • delaying load of data until we specifically request for it
    • i.e. accessing customer.Address loads Address of a customer in the background via separate SQL query
    • property needs to be public, virtual
    • context.Configuration.ProxyCreationEnabled should be true
    • context.Configuration.LazyLoadingEnabled should be true
    • to disable lazy loading completely Context.Configuration.LazyLoadingEnabled = false;
  • eager loading
    • opposite of lazy loading
    • loads related entities as part of the query
    • done via .Include() query

Further read:

https://www.entityframeworktutorial.net/lazyloading-in-entity-framework.aspx

https://www.entityframeworktutorial.net/eager-loading-in-entity-framework.aspx

Entity Framework and Base Entity class

Entity Framework does great job with taking care of entities changes and entities collection internally. And its uses almost plain POCO objects. Almost because collections of dependents data like in 1 to many tables relationship needs virtual keyword. Its understandable since EF needs to track what happens to collection. For instance lets have 2 tables: Customer and dependent Order.

Continue reading “Entity Framework and Base Entity class”

Ninject and Entity Framework

Last time I wrote about problem with testing Entity Framework in Visual Studio 2012. During working on this project I also encounter problems with configuration of Ninject to allow injecting Entity Framework classes from its Patterns extension. To be frankly this was not much a problem then lack of documentation. I just was forced to experiment with Ninject and new-thing-for-me Entity Framework Patterns extension. Continue reading “Ninject and Entity Framework”