Die Definition einer Datentabelle erfolgt am einfachsten über das XPO ORM Data Model Wizard von DevExpress. Rechter Mausklick auf dem Projekt “Add devExpress Item\New Item”
Der Wizard wird an keine Datenbank angebunden. Über die Toolbox kann nun ein “Persistent Object” hinzugefügt werden. In Business App werden alle Datentabellen mit dem Präfix “Orm” benannt.
Um die “Base Class” der Datentabelle setzen zu können, muss sie über “Add Assembly”, Auswahl der korrekten DLL aus dem “bin” Ordner und Auswahl des gewünschten Typs (Datentabelle) hinzugefügt werden. Eine Referenz auf die DLL muss nicht hinzugefügt werden.
Für die Definition einer neuen Datentabelle in Business App wird noch eine Erweiterung der EnumDataSource
benötigt. Beispiel:
[EnumExtension(typeof(EnumDataSource))]
public static class EnumDataSourceExtension
{
public const string MyDataTableGuid = "[INSERT DATA TABLE GUID]";
public static readonly EnumDataSource MyDataTable = new EnumDataSource(MyDataTableGuid, 1000, "[INSERT TRANSLATION GUID]", "data_table");
}
Eine Schnittstelle wird ebenfalls benötigt, welche per Attribute an den Auswahllistenwert gebunden wird. Beispiel:
[OrmDataSource(EnumDataSourceExtension.MyDataTableGuid)]
public interface IOrmMyDataTable { }
Die neue Datentabelle (Persistent Object) muss das Interface implementieren
public partial class OrmMyDataTable : IOrmMyDataTable
Mit dem Attribut DesignTimeVisible
mit dem Parameter false
kann die Datentabelle aus der Auswahl im Designer ausgeschlossen werden und mit Description
kann man der Datetabelle eine Beschreibung geben.
[DesignTimeVisible(false)]
[Description("Meine eigene Datentabelle")]
public partial class OrmMyDataTable : IOrmMyDataTable
Als Letztes wird die neue Datentabelle per Dependency Injection bekannt gemacht.
Bind<IOrmMyDataTable>().To<OrmMyDataTable>();
Wird eine Datentabelle erweitert, ist sowohl der Auswahlwert als auch die Schnittstelle schon vorhanden. In diesem Fall muss lediglich ein Rebind durchgeführt werden.
Rebind<IOrmPhoneCall>().To<OrmPhoneCall>();