This question is locked. New answers and comments are not allowed.
1. After a really quick scan of the OpenAccess source code it seems to me that the OA Linq implementation evaluates expressions on it's own as in: While the query could have been translated to SQL, everything required to evaluate the linq expression gets loaded from the database during OA linq expression evaluation.
2. If you want to avoid loading the entire table you have to start out with something that initially is less than the entire table, for instance a mapped one to many relation allows you to access the "many" side of the relation as a collection exposed as a property of the object representing the "one" side of the relation.
3. As for lazy loading: When I access the many side collection of a reverse mapped on-to-many relation - the entire set of related elements are loaded by OA once OA starts loading the elements. If I only want to access the first detail element - as in one element - on the many side of the relation, and there are 300.000 elements on the many side, all of them gets loaded.
If this is correct one can easily end up with a preformance overhead of several thousand percent compared to using System.Data.SqlClient directly.
Am I right?
Regards
Espen Harlinn
2. If you want to avoid loading the entire table you have to start out with something that initially is less than the entire table, for instance a mapped one to many relation allows you to access the "many" side of the relation as a collection exposed as a property of the object representing the "one" side of the relation.
3. As for lazy loading: When I access the many side collection of a reverse mapped on-to-many relation - the entire set of related elements are loaded by OA once OA starts loading the elements. If I only want to access the first detail element - as in one element - on the many side of the relation, and there are 300.000 elements on the many side, all of them gets loaded.
If this is correct one can easily end up with a preformance overhead of several thousand percent compared to using System.Data.SqlClient directly.
Am I right?
Regards
Espen Harlinn