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)]