Multiplayer Reference
Class DatabaseObject
Namespace: PlayerIO.GameLibrary
Language: C# / .NET
This class represents a BigDB Database Object that has a Key and a collection of named properties.
There are methods for setting, getting, and removing properties, and changes to the object can be persisted to BigDB with the Save() method.
Database objects are very similar to JSON objects and are most easily visualized as such. For example, we can visualize a car object like this:
If we then want to create this object in BigDB, we would have to do this:
To make it easier to work with nested objects, you can reference them directly by separating the property names with a dot. Using this, we can set the stats properties of the car like this instead:
When you want to read properties from a database object, you have to call the corresponding get method indicating the type of the property.
BigDB doesn't enforce anything on your objects. Two objects in the same table do not need to have the same properties set, and do not need to have the same type on the same property. If you try to get a property that is missing, or if you are using a get method of the wrong type, you will get an exception.
One way of avoiding this is to first check the object if a certain property exists before reading this. You can do this with the Contains method.
Another way of avoiding errors is to specify a default value when calling a get method. If the object doesn't contain the property, the method will return your default value instead.
You can also easily remove properties from your object with the Remove method.
Finally, to persist any changes you've made to an object you can call the Save method. Note that you can only call Save on an object that exist in the database. This means that the first time you save an object you have to call the PlayerIO.BigDB.CreateObject method, but all subsequent times you can call the Save method. There is also a property called ExistsInDatabase that you can use to check if it has been created or not.
The Save method is asynchronous just like the CreateObject method in PlayerIO.BigDB, and you can specify a callback if you wish to do something when the object actually has been saved.
Properties
|
| public int |
Returns the number of properties on this object
|
| public bool |
Returns true if the object has been persisted
|
| public string |
The key of the object.
|
| public ICollection<string> |
Get the names of all properties on this object
|
| public string |
The name of the BigDB table this object belongs to
|
Methods
|
| public void |
Removes all properties on this object
|
| public bool |
Returns true if the given property exists on this object
|
| public DatabaseArray |
Get the given array property
|
| public bool |
| GetBool |
(string propertyExpression, bool defaultValue) |
Get the given bool property, falling back to the given default value if the bool property does not exist
|
| public bool |
| GetBool |
(string propertyExpression) |
Get the given bool property
|
| public Byte[] |
| GetBytes |
(string propertyExpression, Byte[] defaultValue) |
Get the given byte array property, falling back to the given default value if the byte array property does not exist
|
| public Byte[] |
Get the given byte array property
|
| public DateTime |
Get the given datetime property
|
| public DateTime |
| GetDateTime |
(string propertyExpression, DateTime defaultValue) |
Get the given datetime property, falling back to the given default value if the datetime property does not exist
|
| public Double |
Get the given double property
|
| public Double |
| GetDouble |
(string propertyExpression, Double defaultValue) |
Get the given double property, falling back to the given default value if the double property does not exist
|
| public Single |
| GetFloat |
(string propertyExpression, Single defaultValue) |
Get the given float property, falling back to the given default value if the float property does not exist
|
| public Single |
Get the given float property
|
| public int |
| GetInt |
(string propertyExpression, int defaultValue) |
Get the given int property, falling back to the given default value if the int property does not exist
|
| public int |
| GetInt |
(string propertyExpression) |
Get the given int property
|
| public Int64 |
| GetLong |
(string propertyExpression, Int64 defaultValue) |
Get the given long property, falling back to the given default value if the long property does not exist
|
| public Int64 |
| GetLong |
(string propertyExpression) |
Get the given long property
|
| public DatabaseObject |
Get the given object property
|
| public string |
| GetString |
(string propertyExpression, string defaultValue) |
Get the given string property, falling back to the given default value if the string property does not exist
|
| public string |
Get the given string property
|
| public uint |
| GetUInt |
(string propertyExpression, uint defaultValue) |
Get the given uint property, falling back to the given default value if the uint property does not exist
|
| public uint |
| GetUInt |
(string propertyExpression) |
Get the given uint property
|
| public object |
Get the given property as an object
|
| public DatabaseObject |
| Remove |
(string propertyExpression) |
Removes the value of the given property from this object
|
| public void |
| Save |
(Callback successCallback, Callback<PlayerIOError> errorCallback) |
Persist the object to the database
|
| public void |
| Save |
(Callback successCallback) |
Persist the object to the database
|
| public void |
| Save |
(bool useOptimisticLock) |
Persist the object to the database asynchronously, using optimistic locking if specified
|
| public void |
| Save |
(bool useOptimisticLock, bool fullOverwrite) |
Persist the object to the database asynchronously, using optimistic locking and full overwrite if specified
|
| public void |
Persist the object to the database asynchronously.
|
| public void |
| Save |
(bool useOptimisticLock, bool fullOverwrite, Callback successCallback) |
Persist the object to the database, using optimistic locking and full overwrite if specified
|
| public void |
| Save |
(bool useOptimisticLock, Callback successCallback) |
Persist the object to the database, using optimistic locking if specified
|
| public void |
| Save |
(bool useOptimisticLock, Callback successCallback, Callback<PlayerIOError> errorCallback) |
Persist the object to the database, using optimistic locking if specified
|
| public void |
| Save |
(bool useOptimisticLock, bool fullOverwrite, Callback successCallback, Callback<PlayerIOError> errorCallback) |
Persist the object to the database, using optimistic locking and full overwrite if specified
|
| public DatabaseObject |
| Set |
(string propertyExpression, DatabaseObject value) |
Set the given property to the given object
|
| public DatabaseObject |
| Set |
(string propertyExpression, DatabaseArray value) |
Set the given property to the given array
|
| public DatabaseObject |
| Set |
(string propertyExpression, string value) |
Set the given property to the given string value
|
| public DatabaseObject |
| Set |
(string propertyExpression, DateTime value) |
Set the given property to the given datetime value
|
| public DatabaseObject |
| Set |
(string propertyExpression, Int64 value) |
Set the given property to the given long value
|
| public DatabaseObject |
| Set |
(string propertyExpression, uint value) |
Set the given property to the given uint value
|
| public DatabaseObject |
| Set |
(string propertyExpression, int value) |
Set the given property to the given int value
|
| public DatabaseObject |
| Set |
(string propertyExpression, bool value) |
Set the given property to the given bool value
|
| public DatabaseObject |
| Set |
(string propertyExpression, Byte[] value) |
Set the given property to the given byte array value
|
| public DatabaseObject |
| Set |
(string propertyExpression, Double value) |
Set the given property to the given double value
|
| public DatabaseObject |
| Set |
(string propertyExpression, Single value) |
Set the given property to the given float value
|
Count
Returns the number of properties on this object
Return Value
ExistsInDatabase
Returns true if the object has been persisted
Return Value
Key
The key of the object.
Return Value
Properties
Get the names of all properties on this object
Return Value
Table
The name of the BigDB table this object belongs to
Return Value
Clear
Removes all properties on this object
Contains
Returns true if the given property exists on this object
Arguments
| string |
propertyExpression |
|
|
Return Value
GetArray
Get the given array property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetBool
Get the given bool property, falling back to the given default value if the bool property does not exist
Arguments
| string |
propertyExpression |
|
|
| bool |
defaultValue |
|
|
Return Value
GetBool
Get the given bool property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetBytes
Get the given byte array property, falling back to the given default value if the byte array property does not exist
Arguments
| string |
propertyExpression |
|
|
| Byte[] |
defaultValue |
|
|
Return Value
GetBytes
Get the given byte array property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetDateTime
Get the given datetime property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetDateTime
Get the given datetime property, falling back to the given default value if the datetime property does not exist
Arguments
| string |
propertyExpression |
|
|
| DateTime |
defaultValue |
|
|
Return Value
GetDouble
Get the given double property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetDouble
Get the given double property, falling back to the given default value if the double property does not exist
Arguments
| string |
propertyExpression |
|
|
| Double |
defaultValue |
|
|
Return Value
GetFloat
Get the given float property, falling back to the given default value if the float property does not exist
Arguments
| string |
propertyExpression |
|
|
| Single |
defaultValue |
|
|
Return Value
GetFloat
Get the given float property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetInt
Get the given int property, falling back to the given default value if the int property does not exist
Arguments
| string |
propertyExpression |
|
|
| int |
defaultValue |
|
|
Return Value
GetInt
Get the given int property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetLong
Get the given long property, falling back to the given default value if the long property does not exist
Arguments
| string |
propertyExpression |
|
|
| Int64 |
defaultValue |
|
|
Return Value
GetLong
Get the given long property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetObject
Get the given object property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetString
Get the given string property, falling back to the given default value if the string property does not exist
Arguments
| string |
propertyExpression |
|
|
| string |
defaultValue |
|
|
Return Value
GetString
Get the given string property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetUInt
Get the given uint property, falling back to the given default value if the uint property does not exist
Arguments
| string |
propertyExpression |
|
|
| uint |
defaultValue |
|
|
Return Value
GetUInt
Get the given uint property
Arguments
| string |
propertyExpression |
|
|
Return Value
GetValue
Get the given property as an object
Arguments
| string |
propertyExpression |
|
|
Return Value
Remove
Removes the value of the given property from this object
Arguments
| string |
propertyExpression |
|
|
Return Value
Save
Persist the object to the database
Arguments
| Callback |
successCallback |
|
Callback when the save succeeds |
| Callback<PlayerIOError> |
errorCallback |
|
Callback that will be called instead of successCallback if an error occurs during the save. |
Save
Persist the object to the database
Arguments
| Callback |
successCallback |
|
Callback when the save succeeds |
Save
Persist the object to the database asynchronously, using optimistic locking if specified
If use the overloads with success callbacks if you need to know when the save has completed successfully
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
Save
Persist the object to the database asynchronously, using optimistic locking and full overwrite if specified
If use the overloads with success callbacks if you need to know when the save has completed successfully
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
| bool |
fullOverwrite |
|
Will completely overwrite the database object in BigDB with the properties in this instance, instead of just sending the changed properties to the server. |
Save
Persist the object to the database asynchronously.
If use the overloads with success callbacks if you need to know when the save has completed successfully
Save
Persist the object to the database, using optimistic locking and full overwrite if specified
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
| bool |
fullOverwrite |
|
Will completely overwrite the database object in BigDB with the properties in this instance, instead of just sending the changed properties to the server. |
| Callback |
successCallback |
|
Callback when the save succeeds |
Save
Persist the object to the database, using optimistic locking if specified
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
| Callback |
successCallback |
|
Callback when the save succeeds |
Save
Persist the object to the database, using optimistic locking if specified
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
| Callback |
successCallback |
|
Callback when the save succeeds |
| Callback<PlayerIOError> |
errorCallback |
|
Callback that will be called instead of successCallback if an error occurs during the save. |
Save
Persist the object to the database, using optimistic locking and full overwrite if specified
Arguments
| bool |
useOptimisticLock |
|
If true, the save will only be completed if the database object has not changed in BigDB since this instance was loaded. |
| bool |
fullOverwrite |
|
Will completely overwrite the database object in BigDB with the properties in this instance, instead of just sending the changed properties to the server. |
| Callback |
successCallback |
|
Callback when the save succeeds |
| Callback<PlayerIOError> |
errorCallback |
|
Callback that will be called instead of successCallback if an error occurs during the save. |
Set
Set the given property to the given object
Arguments
| string |
propertyExpression |
|
|
| DatabaseObject |
value |
|
|
Return Value
Set
Set the given property to the given array
Arguments
| string |
propertyExpression |
|
|
| DatabaseArray |
value |
|
|
Return Value
Set
Set the given property to the given string value
Arguments
| string |
propertyExpression |
|
|
| string |
value |
|
|
Return Value
Set
Set the given property to the given datetime value
Arguments
| string |
propertyExpression |
|
|
| DateTime |
value |
|
|
Return Value
Set
Set the given property to the given long value
Arguments
| string |
propertyExpression |
|
|
| Int64 |
value |
|
|
Return Value
Set
Set the given property to the given uint value
Arguments
| string |
propertyExpression |
|
|
| uint |
value |
|
|
Return Value
Set
Set the given property to the given int value
Arguments
| string |
propertyExpression |
|
|
| int |
value |
|
|
Return Value
Set
Set the given property to the given bool value
Arguments
| string |
propertyExpression |
|
|
| bool |
value |
|
|
Return Value
Set
Set the given property to the given byte array value
Arguments
| string |
propertyExpression |
|
|
| Byte[] |
value |
|
|
Return Value
Set
Set the given property to the given double value
Arguments
| string |
propertyExpression |
|
|
| Double |
value |
|
|
Return Value
Set
Set the given property to the given float value
Arguments
| string |
propertyExpression |
|
|
| Single |
value |
|
|
Return Value