Patent ID: 8739118

Claim:
In a computing environment, a method of facilitating mapping of data between object oriented programs and database storage tables, the method comprising: receiving user input from a user, wherein the user input comprises a plurality of parts, wherein each part comprises: a specification of a source, wherein the specification of a source comprises specification of at least one of a hierarchy type, a single type, a multiple type, or an association type, wherein a hierarchy type indicates that a part applies to all entities that are instances of the given type or some type derived from the given type, further wherein a hierarchy type makes available a single range variable of the indicated type; and wherein a single type indicates that a part applies to all entities that are specifically instances of the given type, not derived from the given type, further wherein, a single type makes available a single range variable of the indicated type, further wherein a multiple type indicates that the part applies to all entities implementing one of a set of types, and wherein a multiple type makes available a single range variable that is a most derived common ancestor for all of the types specified, further wherein an association type indicates that a part applies to a given relationship, and wherein an association type makes available two range variables, one for each side of a relationship; and a projection, wherein each projection assigns values to table columns including zero or more assignments, each assignment comprising a column name and a value, where the value follows one of the following patterns: a value literal, a property chain, a navigation key, wherein a value literal indicates that for a given source and optional filter, a specified column has a given constant value, further wherein a property chain is a member access chain where a leaf is an entity or range variable, intermediate members are complex properties and ending with a primitive property, further wherein a navigation key is a member access chain comprising a navigation property on a range variable and a key property of a related end; performing inline mapping validation, including: determining a base declaring type for the navigation property that is being mapped inline, wherein each concrete type in a hierarchy for this declaring type includes an inline mapping for the navigation property; and determining that each inline mapping of the navigation property includes all key properties of the target entity and that each inline mapping is consistent with respect to columns and tables into which those key values are projected; and based on the plurality of parts received, generating one or more views, wherein the one or more views describe relationships between model extents and database tables.