Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+

KeyAttribute Class

Indicates that a property or a field is a key.

Namespace: DevExpress.Xpo

Assembly: DevExpress.Xpo.v19.1.dll


[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true)]
public sealed class KeyAttribute :
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true)]
public sealed class KeyAttribute :


Apply this attribute to a property or a field to mark it as a key. The KeyAttribute.AutoGenerate property specifies whether the key is generated automatically.

You can change key property values for new unsaved objects only. If you change a key property for a saved object, the identity map may not function correctly. Define a key property as “read-only” whenever possible:

[Key(true), Persistent("CategoryID")]
int fCategoryID = -1;

public int CategoryID {
    get { return fCategoryID; }

The following code snippets (auto-collected from DevExpress Examples) contain references to the KeyAttribute class.


The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.


See Also