public sealed class PropertyTransform : IMessage<PropertyTransform>, IEquatable<PropertyTransform>, IDeepCloneable<PropertyTransform>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Cloud Datastore v1 API class PropertyTransform.
public ArrayValue AppendMissingElements { get; set; }
Appends the given elements in order if they are not already present in
the current property value.
If the property is not an array, or if the property does not yet exist,
it is first set to the empty array.
Equivalent numbers of different types (e.g. 3L and 3.0) are
considered equal when checking if a value is missing.
NaN is equal to NaN, and the null value is equal to the null value.
If the input contains multiple equivalent values, only the first will
be considered.
The corresponding transform result will be the null value.
Adds the given value to the property's current value.
This must be an integer or a double value.
If the property is not an integer or double, or if the property does not
yet exist, the transformation will set the property to the given value.
If either of the given value or the current property value are doubles,
both values will be interpreted as doubles. Double arithmetic and
representation of double values follows IEEE 754 semantics.
If there is positive/negative integer overflow, the property is resolved
to the largest magnitude positive/negative integer.
Sets the property to the maximum of its current value and the given
value.
This must be an integer or a double value.
If the property is not an integer or double, or if the property does not
yet exist, the transformation will set the property to the given value.
If a maximum operation is applied where the property and the input value
are of mixed types (that is - one is an integer and one is a double)
the property takes on the type of the larger operand. If the operands are
equivalent (e.g. 3 and 3.0), the property does not change.
0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and
zero input value is always the stored value.
The maximum of any numeric value x and NaN is NaN.
Sets the property to the minimum of its current value and the given
value.
This must be an integer or a double value.
If the property is not an integer or double, or if the property does not
yet exist, the transformation will set the property to the input value.
If a minimum operation is applied where the property and the input value
are of mixed types (that is - one is an integer and one is a double)
the property takes on the type of the smaller operand. If the operands
are equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0,
and -0.0 are all zero. The minimum of a zero stored value and zero input
value is always the stored value. The minimum of any numeric value x and
NaN is NaN.
Property paths (a list of property names separated by dots (.)) may be
used to refer to properties inside entity values. For example foo.bar
means the property bar inside the entity property foo.
If a property name contains a dot . or a backlslash \, then that name
must be escaped.
public ArrayValue RemoveAllFromArray { get; set; }
Removes all of the given elements from the array in the property.
If the property is not an array, or if the property does not yet exist,
it is set to the empty array.
Equivalent numbers of different types (e.g. 3L and 3.0) are
considered equal when deciding whether an element should be removed.
NaN is equal to NaN, and the null value is equal to the null value.
This will remove all equivalent values if there are duplicates.
The corresponding transform result will be the null value.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003ePropertyTransform\u003c/code\u003e class within the Google Cloud Datastore v1 API allows for various transformations of entity properties, such as appending elements to arrays, incrementing values, and setting minimum or maximum values.\u003c/p\u003e\n"],["\u003cp\u003eThere are multiple versions of the \u003ccode\u003ePropertyTransform\u003c/code\u003e documentation available, with version 4.15.0 being the most recent, and versions ranging from 4.0.0 to 4.14.0 and 3.2.0 to 3.5.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePropertyTransform\u003c/code\u003e class implements multiple interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and inherits from the base \u003ccode\u003eobject\u003c/code\u003e class, offering diverse functionality.\u003c/p\u003e\n"],["\u003cp\u003eThis class allows setting a property to a specific server value or to manipulate an array by adding or removing elements.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation provided covers the constructors, properties and methods associated to the PropertyTransform class.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Datastore v1 API - Class PropertyTransform (4.15.0)\n\nVersion latestkeyboard_arrow_down\n\n- [4.15.0 (latest)](/dotnet/docs/reference/Google.Cloud.Datastore.V1/latest/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.14.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.14.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.13.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.13.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.12.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.12.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.11.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.11.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.10.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.10.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.9.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.9.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.8.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.8.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.7.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.7.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.6.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.6.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.5.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.5.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.4.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.4.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.3.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.3.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.2.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.2.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.1.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.1.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [4.0.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/4.0.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/3.5.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/3.4.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/3.3.0/Google.Cloud.Datastore.V1.PropertyTransform)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Datastore.V1/3.2.0/Google.Cloud.Datastore.V1.PropertyTransform) \n\n public sealed class PropertyTransform : IMessage\u003cPropertyTransform\u003e, IEquatable\u003cPropertyTransform\u003e, IDeepCloneable\u003cPropertyTransform\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Datastore v1 API class PropertyTransform.\n\nA transformation of an entity property. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e PropertyTransform \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[PropertyTransform](/dotnet/docs/reference/Google.Cloud.Datastore.V1/latest/Google.Cloud.Datastore.V1.PropertyTransform), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[PropertyTransform](/dotnet/docs/reference/Google.Cloud.Datastore.V1/latest/Google.Cloud.Datastore.V1.PropertyTransform), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[PropertyTransform](/dotnet/docs/reference/Google.Cloud.Datastore.V1/latest/Google.Cloud.Datastore.V1.PropertyTransform), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Datastore.V1](/dotnet/docs/reference/Google.Cloud.Datastore.V1/latest/Google.Cloud.Datastore.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Datastore.V1.dll\n\nConstructors\n------------\n\n### PropertyTransform()\n\n public PropertyTransform()\n\n### PropertyTransform(PropertyTransform)\n\n public PropertyTransform(PropertyTransform other)\n\nProperties\n----------\n\n### AppendMissingElements\n\n public ArrayValue AppendMissingElements { get; set; }\n\nAppends the given elements in order if they are not already present in\nthe current property value.\nIf the property is not an array, or if the property does not yet exist,\nit is first set to the empty array.\n\nEquivalent numbers of different types (e.g. 3L and 3.0) are\nconsidered equal when checking if a value is missing.\nNaN is equal to NaN, and the null value is equal to the null value.\nIf the input contains multiple equivalent values, only the first will\nbe considered.\n\nThe corresponding transform result will be the null value.\n\n### HasSetToServerValue\n\n public bool HasSetToServerValue { get; }\n\nGets whether the \"set_to_server_value\" field is set\n\n### Increment\n\n public Value Increment { get; set; }\n\nAdds the given value to the property's current value.\n\nThis must be an integer or a double value.\nIf the property is not an integer or double, or if the property does not\nyet exist, the transformation will set the property to the given value.\nIf either of the given value or the current property value are doubles,\nboth values will be interpreted as doubles. Double arithmetic and\nrepresentation of double values follows IEEE 754 semantics.\nIf there is positive/negative integer overflow, the property is resolved\nto the largest magnitude positive/negative integer.\n\n### Maximum\n\n public Value Maximum { get; set; }\n\nSets the property to the maximum of its current value and the given\nvalue.\n\nThis must be an integer or a double value.\nIf the property is not an integer or double, or if the property does not\nyet exist, the transformation will set the property to the given value.\nIf a maximum operation is applied where the property and the input value\nare of mixed types (that is - one is an integer and one is a double)\nthe property takes on the type of the larger operand. If the operands are\nequivalent (e.g. 3 and 3.0), the property does not change.\n0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and\nzero input value is always the stored value.\nThe maximum of any numeric value x and NaN is NaN.\n\n### Minimum\n\n public Value Minimum { get; set; }\n\nSets the property to the minimum of its current value and the given\nvalue.\n\nThis must be an integer or a double value.\nIf the property is not an integer or double, or if the property does not\nyet exist, the transformation will set the property to the input value.\nIf a minimum operation is applied where the property and the input value\nare of mixed types (that is - one is an integer and one is a double)\nthe property takes on the type of the smaller operand. If the operands\nare equivalent (e.g. 3 and 3.0), the property does not change. 0, 0.0,\nand -0.0 are all zero. The minimum of a zero stored value and zero input\nvalue is always the stored value. The minimum of any numeric value x and\nNaN is NaN.\n\n### Property\n\n public string Property { get; set; }\n\nOptional. The name of the property.\n\nProperty paths (a list of property names separated by dots (`.`)) may be\nused to refer to properties inside entity values. For example `foo.bar`\nmeans the property `bar` inside the entity property `foo`.\n\nIf a property name contains a dot `.` or a backlslash `\\`, then that name\nmust be escaped.\n\n### RemoveAllFromArray\n\n public ArrayValue RemoveAllFromArray { get; set; }\n\nRemoves all of the given elements from the array in the property.\nIf the property is not an array, or if the property does not yet exist,\nit is set to the empty array.\n\nEquivalent numbers of different types (e.g. 3L and 3.0) are\nconsidered equal when deciding whether an element should be removed.\nNaN is equal to NaN, and the null value is equal to the null value.\nThis will remove all equivalent values if there are duplicates.\n\nThe corresponding transform result will be the null value.\n\n### SetToServerValue\n\n public PropertyTransform.Types.ServerValue SetToServerValue { get; set; }\n\nSets the property to the given server value.\n\n### TransformTypeCase\n\n public PropertyTransform.TransformTypeOneofCase TransformTypeCase { get; }"]]