ManagedEntity class Null safety

Mapping information between a table in a database and a ManagedObject object.

An entity defines the mapping between a database table and ManagedObject subclass. Entities are created by declaring ManagedObject subclasses and instantiating a ManagedDataModel. In general, you do not need to use or create instances of this class.

An entity describes the properties that a subclass of ManagedObject will have and their representation in the underlying database. Each of these properties are represented by an instance of a ManagedPropertyDescription subclass. A property is either an attribute or a relationship.

Attribute values are scalar (see ManagedPropertyType) - int, String, DateTime, double and bool. Attributes are typically backed by a column in the underlying database for a ManagedObject, but may also represent transient values defined by the instanceType. Attributes are represented by ManagedAttributeDescription.

The value of a relationship property is a reference to another ManagedObject. If a relationship property has Relate metadata, the property is backed be a foreign key column in the underlying database. Relationships are represented by ManagedRelationshipDescription.

Implemented types


ManagedEntity(String? _tableName, Type instanceType, String tableDefinition)
Creates an instance of this type.. [...]


attributes Map<String?, ManagedAttributeDescription?>
All attribute values of this entity. [...]
read / write
defaultProperties List<String>?
The list of default property names of this object. [...]
hashCode int
Derived from this' tableName.
read-only, override
instanceType Type
The type of instances represented by this entity. [...]
name String
The name of this entity. [...]
primaryKey String?
Name of primary key property. [...]
read / write
primaryKeyAttribute ManagedAttributeDescription?
properties Map<String?, ManagedPropertyDescription?>
All properties (relationships and attributes) of this entity. [...]
relationships Map<String?, ManagedRelationshipDescription?>?
All relationship values of this entity. [...]
read / write
runtime ManagedEntityRuntime?
Set of callbacks that are implemented differently depending on compilation target. [...]
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
symbolMap Map<Symbol, String?>
A map from accessor symbol name to property name. [...]
read / write
tableDefinition String
The name of type of persistent instances represented by this entity. [...]
tableName String?
Name of table in database this entity maps to. [...]
uniquePropertySet List<ManagedPropertyDescription?>?
Set of properties that, together, are unique for each instance of this entity. [...]
read / write
validators List<ManagedValidator?>
List of ManagedValidators for attributes of this entity. [...]
read / write


document(APIDocumentContext context) APISchemaObject
documentComponents(APIDocumentContext context) → void
Tells this object to add its components to context. [...]
identifyAttribute<T, U extends ManagedObject>(T propertyIdentifier(U x)) ManagedAttributeDescription
Returns an attribute in this entity for a property selector. [...]
identifyProperties<T, U extends ManagedObject>(T propertiesIdentifier(U x)) List<KeyPath>
Returns a list of properties selected by propertiesIdentifier. [...]
identifyProperty<T, U extends ManagedObject>(T propertyIdentifier(U? x)) → KeyPath
Returns a property selected by propertyIdentifier. [...]
identifyRelationship<T, U extends ManagedObject>(T propertyIdentifier(U x)) ManagedRelationshipDescription
Returns a relationship in this entity for a property selector. [...]
instanceOf<T extends ManagedObject>({ManagedBacking? backing}) → T
Creates a new instance of this entity's instance type. [...]
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
setOf<T extends ManagedObject>(Iterable objects) ManagedSet<T>?
toString() String
A string representation of this object. [...]


operator ==(dynamic other) bool
Two entities are considered equal if they have the same tableName.