- 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
LinqExtensionMethods
        Craig Fowler edited this page Feb 22, 2020 
        ·
        2 revisions
      
    The library also includes a number of extension methods designed for use by Linq-based queries, for features such as:
- Lazy-resolution of query results, enabling the underlying ORM to batch multiple queries together.
- Eager-fetching of objects related to the query, to retrieve 'child' & 'grandchild' entities at the same time as retrieving their parents
- Asynchronous querying, to improve performance by performing I/O-bound operations asynchronously
With regard to these three areas, the entry-point to this functionality is provided via a an extension methods class in the CSF.ORM namespace: QueryableExtensions. However, the functionality is not entirely static; the implementation which backs these operations may be swapped via the properties on the extension methods class.
- 
EagerFetchingProvider: an implementation ofIEagerlyFetchesFromQuery
- 
LazyQueryingProvider: an implementation ofIGetsLazyQueryResult
- 
AsyncQueryingProvider: an implementation ofIProvidesAsyncQuerying
Because these properties are static, they are not thread-safe. They should be set only during application (or test) start-up.