Back to Devexpress

IDataLayer.SchemaInit Event

xpo-devexpress-dot-xpo-dot-idatalayer.md

latest2.4 KB
Original Source

IDataLayer.SchemaInit Event

When implemented by a class, this event will occur when the data schema is initialized or updated.

Namespace : DevExpress.Xpo

Assembly : DevExpress.Xpo.v25.2.dll

NuGet Package : DevExpress.Xpo

Declaration

csharp
event SchemaInitEventHandler SchemaInit
vb
Event SchemaInit As SchemaInitEventHandler

Event Data

The SchemaInit event's data class is SchemaInitEventArgs. The following properties provide information specific to this event:

PropertyDescription
CommandGets an SQL statement which can be executed while connected to an SQL data source.
TableGets an object metadata the schema for which has been created in storage.

Remarks

csharp
private static void DataLayer_SchemaInit(object sender, SchemaInitEventArgs e) {
    if (e.Table.ClassType == typeof(User)) {
        XPMemberInfo firstNameColumn = e.Table.FindMember("FirstName");
        e.Command.CommandText = String.Format(
          "alter table [{0}] alter column [{1}] nvarchar({2}) collate Latin1_General_CS_AS",
          e.Table.TableName, firstNameColumn.MappingField, firstNameColumn.MappingFieldSize
        );
        e.Command.ExecuteNonQuery();
    }
}
vb
Private Shared Sub DataLayer_SchemaInit(ByVal sender As Object, ByVal e As SchemaInitEventArgs)
  If e.Table.ClassType Is GetType(User) Then
    Dim firstNameColumn As XPMemberInfo = e.Table.FindMember("FirstName")
    e.Command.CommandText = String.Format( _
      "alter table [{0}] alter column [{1}] nvarchar({2}) collate Latin1_General_CS_AS", _ 
      e.Table.TableName, firstNameColumn.MappingField, firstNameColumn.MappingFieldSize _
    )
    e.Command.ExecuteNonQuery()
  End If
End Sub

See Also

IDataLayer Interface

IDataLayer Members

DevExpress.Xpo Namespace