Entity Inheritance

Inheritance is the way to express 1:1 relationships and provide data and behavior sharing between entities.

Here is an example of how entity inheritance might work:
family Business
{
    entity A as EntityBase
    {
        field auto id int aid;
        field nullable string Data;
        field datetime Date;
    }

    entity B : A on aid=bid as EntityBase
    {
        field id bid;
        field string BData;
    }
    
    entity C : A on aid=cid as EntityBase
    {
        field id cid;
        hide field Data;
        field string CData;
    }
}


A Members B Members C Members
aid bid cid
Data Data Date
Date Date CData
BData

Restrictions

  • The hide keyword would only be valid on entities that inherit from other entities and can only be applied to nullable fields or relationships that rely on nullable fields.
  • The classes generated for B & C would not litterally inherit from A but the stored procedures generated would use Joins between the B & C tables to join with A to retrieve the non-hidden data based on the key's specified in the inheritance specifier.
  • It is not possible to inherit from multiple entities but it is possible to chain inheritance over N entities deep (Meaning D could inherit from C or B).
  • You must use a using, or full family name of an entity for sideways or deeper inheritance.

See Also: Entity Models

Last edited Nov 1, 2007 at 4:02 AM by justinc, version 5

Comments

No comments yet.