the statuses of the data objects
The statuses of the data objects can be:
ObjectStatus.UnAltered
object data is not changed.ObjectStatus.Created
— a data object created.ObjectStatus.Altered
object data changed.ObjectStatus.Deleted
— data object deleted.
The object status can be ascertained by the method of the data object GetStatus
and set — SetStatus
. Status allows you to determine exactly what changes were made to the data object.
AutoAltered
Status Altered
can be calculated automatically at the time you call GetStatus
. This requires the class of the data object attribute to the attribute AutoAltered
. If this attribute is not assigned, then set status Altered
programmer must perform» «manually. You should carefully use this opportunity to remember that the installation AutoAltered
slows down because each time the status of the real test object properties data on the change. Default AutoAltered=True;
There is a possibility not to be recalculated after the status of the established AutoAltered
, it is necessary to call the method GetStatus(false)
.
To check if the attribute AutoAltered
by using Information.AutoAlteredClass
.
Test to modify the properties of a custom type
If the data object contains the properties of a custom type (e.g., type of Money), then the default value comparison of an attribute of the object itself and copy data will be made through the implementation of this attribute to a string by ToString()
and then comparing strings. Not for all types the approach is correct and works fast, so there is a IComparableType
interface that contains method for comparison. If a custom type inherited from the type the comparison is not to be through strings, and calling a special method contained in the interface. It is recommended to use this interface, all user attribute types.
download Status of the data object
The loading state of the data object:
LoadingState.NotLoaded
object data is not loaded.LoadingState.Loaded
— proofread all native attributes of the data object, all the artisans of the first level, all dealove the first level.LoadingState.LightLoaded
object data is partially loaded, the details can be clarified by calling object methods GetLoadedProperties and CheckLoadedProperty.
The download status can be ascertained through the method GetLoadingState
and set — SetLoadingState
.
Features of relationship status and download status
Below are some features of the relationship between status and status of the download of data objects:
- When a data object is created, it always
NotLoaded Created
(the same thing happens when you call the Clear method). If the objectNotLoaded
, it can only beCreated
. - If the object has a status
Loaded/LightLoaded
, it under no circumstances cannot have the status ofCreated
. - Object does not happen
NotLoaded UnAltered
. - In a special way processed status and the download status of the object when it is refreshed.
- If you need to move the object from state to state
Created
Altered
, it is enough to call the methodSetLoadingState(LoadingState.LightLoaded)
thereby putting that object in the database is present. More correct way is to callSetExistObjectPrimaryKey(object primaryKey)
is not only indicates that the object in the database is present, but immediately sets the right key of the object in the database. - Method to set the status of the data object DataObject.SetStatus() has special logic that is triggered when the switching status.
Set The \ Old | UnAltered | Created | Altered | Deleted |
---|---|---|---|---|
UnAltered | UnAltered | Created | UnAltered | if are not loaded are Created, UnAltered otherwise |
Created | Created ** Are Not Loaded Are** | Created ** Are Not Loaded Are** | Created ** Are Not Loaded Are** | Created ** Are Not Loaded Are** |
Altered | Altered | Created | Altered | Created if are not loaded are otherwise Altered |
Deleted | Deleted | Deleted | Deleted | Deleted |