Skip to content

Entities (Specific)

nairdo edited this page Mar 19, 2013 · 10 revisions

Below is a breakdown of significant, reusable entities, shown in logical groupings.

Category

This is useful when you need a hierarchical structured set of categories, and therefore Categories are best viewed using a tree view control (see Rock:CategoryPicker). Categories are tied to a particular EntityType so each EntityType can have it's own category tree.

DefinedType & DefinedValue

You can think of DefinedTypes as a kind of dictionary of possible values for a particular thing. The particular thing is the 'defined type'. In Rock, developers can define types of reusable fields and their possible values using this generic entity (DefinedType and DefinedValue; stored in the respective tables of the same name). For example, there is a well-known DefinedType called Record Type which has the following DefinedValues: Person and Business. There is another type called Record Status which has these values: Active, Inactive, and Pending.

DefinedTypes are named, have a description, can have a category, can be ordered, and can also be further specified by a FieldType. DefinedValues are named, can have a description, and be ordered.

NOTE: By convention, any entity that has a property that ends with *ValueId is a reference to a DefinedValue.

Instead of having to create many miscellaneous entities and tables to hold these various dictionary-lookup values, developers can simply rely on DefinedTypes in the Rock framework to manage this data.

NoteType & Note

Notes (and NoteType) are generic, reusable entities in Rock. You can create entries for your own custom NoteTypes which are related to your custom entities. For example, the Prayer system created a "Prayer Comment" type of note which is tied to the Rock.Model.PrayerRequest entity. This is how people's comments are tied to prayer requests.

You are probably asking, 'I see how to related a Note to it's related entity (via the NoteType) but how does the actual note get related to the person who created it?' I have no idea.

David?

Clone this wiki locally