1. At a computer system, a method for creating an object so that portions of the object are accessible without construction of the entire object, the method comprising: an act of receiving a data construction statement, the data construction statement including: an indication of the type of object that the data construction statement represents the construction of, one or more property identifiers, each property identifier identifying a property of the object; and one or more corresponding mappings, each corresponding mapping mapping a property identifier to a query expression, the query expression indicating how to compute the value for the property of the object identified by the property identifier; and an act of creating a data provider in response to receiving the data construction statement, the data provider virtualizing data access so that properties of the object described by the data construction statement can be accessed without having to evaluate the entire data construction statement or fully construct the entire object, the data provider including: a reference to the data construction statement, the reference transitively including references to the type, property identifiers, and corresponding mappings of the data construction statement.