.LoadProperty()
require duplicate hits to the database, regardless if the data persistence layer already made this query and determined there was no matching entries.feature/nuado
) has been in development for several months. This new persistence layer:Skip()
, Take()
, Count()
, etc. translates directly to SQL statements in the database rather than deep loadingQueryPersistenceContext
to control the manner in which properties are loaded based on the caller's use case.IQueryResultSet<T>
interface. These interfaces support methods for skipping and taking records from the underlining data store in a method which reduces the data loaded from the SQL database.IQueryResultSet
which operates on an IEnumerable
instance. This result set just passes any calls to the underlying enumerable object.IQueryResultSet
where a function is called for each retrieved object. This type of result set wrapper is useful when the yield function wishes to modify the result loaded from the wrapped result set.IQueryResultSet
which transforms a source record type to a destination record type using a transform function (Func<TSource, TDestination>
) to map an object (in a pipelined manner) from A to B.IOrmResultSet
. When constructing this instance, the persistence layer should pass an instance of a IMappedQueryProvider
which can be called by the ORM layer to skip/take/count and convert records from the data model layer to the business object model layer.MappedQueryResultSet
which operates on stateful query results from IQueryPersistenceProvider
.