IndicesAttribute Class
Specifies the properties that affect the creation of non-unique database indices.
Namespace: DevExpress.Xpo
Assembly: DevExpress.Xpo.v24.1.dll
NuGet Packages: DevExpress.Win.PivotGrid, DevExpress.Win.TreeMap, DevExpress.Xpo
NuGet Package: DevExpress.Xpo
Declaration
Remarks
Apply this attribute to a persistent class to specify database indices to be created in the database table associated with the class. Unlike IndexedAttribute, IndicesAttribute allows you to specify several non-unique indices for the current table using a single attribute declaration. The following code snippet illustrates usage of both attributes.
[Indices("Name", "Name;Age", "Age;ChildCount")]
public class Person : XPObject {
[Size(32)]
public String Name {
get { return fName; }
set { SetPropertyValue(nameof(Name), ref fName, value); }
}
String fName;
[Indexed(Unique = true), Size(64)]
public String FullName {
get { return fFullName; }
set { SetPropertyValue(nameof(FullName), ref fFullName, value); }
}
String fFullName;
public int Age {
get { return fAge; }
set { SetPropertyValue(nameof(Age), ref fAge, value); }
}
int fAge;
public int ChildCount {
get { return fChildCount; }
set { SetPropertyValue(nameof(ChildCount), ref fChildCount, value); }
}
int fChildCount;
}
With this code in place, the database table corresponding to Person will have four indices.
- A non-unique index over the Name column.
- A non-unique multi-column index over the Name and Age columns.
- A non-unique multi-column index over the Age and ChildCount columns.
- A unique index over the FullName column.
Note
XPO does not support tables with multi-column (compound) keys or indexes in ASE databases. To avoid exceptions when connecting to ASE databases containing these tables, use one-column keys or indexes.