Die Basis-Datentabellen sind abstrakte Datentabellen von denen selbst kein Datensatz erstellt werden kann. Sie bilden eine gemeinsame Basis für verschiedene konkrete Datentabellen. Vorteile:
- Ansichten können auf Basis-Datentabellen basieren und damit eine gemeinsame Darstellung ermöglichen.
- Gemeinsame Felder
- Gemeinsame Teil-Datentabellen
- Einfacher programmatischer Umgang
- Gemeinsame Abfragen
Um eine Basis-Datentabelle zu definieren, definiert man zuerst eine normale Haupt-Datentabelle. Es wird ein zusätzlicher Auswahllistenwert benötigt.
[EnumExtension(typeof(EnumInheritanceTypes))]
public static class EnumInheritanceTypesExtension
{
public const string MyBaseDataTableGuid = "[INSERT DATA TABLE GUID]";
public static readonly EnumInheritanceTypes MyBaseDataTable = new EnumInheritanceTypes(MyBaseDataTableGuid, 1000, "[INSERT TRANSLATION GUID]");
}
Sinnvollerweise wird die Klasse abstract
definiert, damit auch nicht zufällig Datensätze davon angelegt werden können
public abstract partial class OrmMyBaseDataTable : IOrmMyBaseDataTable
Es wird ein Attribut an der Klasse benötigt, um sie dem System als Basis-Datentabelle bekannt zu machen.
BA.Core.CustomAttributes.OrmInheritanceNode(EnumInheritanceTypesExtension.MyBaseDataTableGuid)
Mit diesem Attribute legt man fest ob die Basis-Datentabelle in der Konfiguration zur Auswahl steht.
[System.ComponentModel.DesignTimeVisible(true)]