Interface IBaseObject
Any entity that will be inherited by other entities should also implement this interface.
The common properties should all be implemented in a common interface that the base and inheriting entities implement, for instance see IObjectEntityBase for the common object entity properties.
The base entity itself should implement the common interface, any additional properties, *and* this BaseObject interface. See IObjectEntity for the base object entity type.The inheriting entity should implement the common interface, any additional properties, *and* the IInheritingObject interface. See ICompany for an entity that inherits object entity and has company specific properties.
This ensures that given an id of a IObjectEntity we can get the common information, and it will tell us the inheriting type is a company (InheritingObjectTypeID), and we can then get all the rest of the information from the company itselfInherited Members
Namespace: LemonEdge.API.Entities.Data
Assembly: LemonEdge.API.dll
Syntax
[EntityIndex(Name = "BaseObjType", ColumnNames = new string[] { "InheritingObjectTypeID" }, IndexOrder = new IndexOrder[] { IndexOrder.Ascending }, IsClustered = false, IsUnique = false)]
public interface IBaseObject : IBaseEntity, IEquatable<IBaseEntity>, INotifyPropertyChanged, INotifyPropertyChanging, ICloneableAsync, ICanTrackProperties
Properties
InheritingObjectTypeID
Any object that inherits this interface holds part of a record, the common base part
This holds the type of record which holds the rest
The IDs of both the inheriting and base objects always are the sameDeclaration
[EntityProperty(SQLType.UniqueIdentifier, false, IsEntityTypeLink = true)]
[RequiredNoDefaultIDValidation]
[EntityKeyProperty]
[Unique(MergeWithAnyOtherUniqueProperties = true)]
Guid InheritingObjectTypeID { get; set; }
Property Value
Type | Description |
---|---|
Guid |