Updated: June 16, 2015
The columns named with a "__” prefix are used by Microsoft Azure Mobile Services for system property columns. This prefix is reserved by Mobile Services for future use and should not be used with column names you add. The following columns are included with every table created by Microsoft Azure Mobile Services and should not be deleted:
id: This indexed column has a unique constraint and is used to uniquely identify a row of data. The default type is string. Although the command line interface can be used to create new tables with an id of type integer using the mobile table create command with the --integerId option. For more information see, Azure Command-line tool.
If a value is not provided for the id when inserting new data, then Mobile Services will initialize the id value for the row with a unique value.
You can provide a custom unique value for the id when inserting a row of data. For example, if you want the row to be identified by an email address you could use “firstname.lastname@example.org”. The characters used in a custom value for the id must not include the following:
Printable characters: " (0x0022), + (0x002B), / (0x002F), ? (0x003F), \ (0x005C), ` (0x0060)
The ids “.” and “..”
__createdAt: A system property column used to record when the row of data was created.
__updatedAt: A system property column used to record the last time the row was updated.
__version: A system property column used to detect write conflicts. Mobile Services supports optimistic concurrency control by tracking changes to each item using this version column. When an update is attempted and the version value included with the request does not match the server version, Mobile Services fails the update and throws a MobileServicePreconditionFailedException. The exception contains the correct version value for the row from the server. An application can use this information from the server to resolve the write conflict by resubmitting the update request using the correct version value. For more information, see the tutorial Handling Database Write Conflicts.