Patent ID: 7636911

Claim:
A method for using structure of a data model in a computer environment, the method comprising: designing in a model editor an entity pattern including one or more entity pattern roles based on at least one entity structure within the data model, the one or more entity pattern roles being partial and extendible with additional methods and common language runtime (CLR) properties working on property abstractions; generating a first corresponding class for each entity pattern role in the one or more entity pattern roles, the first corresponding class including a runtime programming interface having a structure described by the entity pattern role and allowing navigation to other entity pattern roles; generating a second corresponding class for each entity pattern role in the one or more entity pattern roles, the second corresponding class containing metadata available at runtime associated with the entity pattern role; applying the one or more entity pattern roles to a concrete entity; validating the concrete entity against the one or more entity pattern roles; determining whether the concrete entity fulfills the one or more entity pattern roles; generating an entity pattern-specific code comprising the first corresponding class and the second corresponding class for each entity pattern role in the one or more entity pattern roles; defining custom metadata including the metadata in the second corresponding class as a part of a definition of the entity pattern; specifying the custom metadata when applying the entity pattern; reading the custom metadata at runtime; querying at runtime the entity pattern; and receiving instances of an entity pattern role classes including the first and second corresponding classes, the instances of entity pattern role classes exposing defined properties, associations, compositions and a runtime class that includes properties to access values for decorations stored in the custom metadata, wherein, for each decoration stored in the custom metadata, a CLR property is generated to access metadata information associated with the decoration and, for each defined property, association, and composition, a string type CLR property is generated in the instances of entity pattern role classes.