Es gibt eine generische Methode zum Klonen von Datensätzen: OrmBABase.Clone().
Diese Methode erstellt logisch gesehen eine Kopie der ORMs. Die Kopie enthält standardmäßig

  • alle persistenten Eigenschaften,
  • alle Teildatensätze, ebenfalls als Kopie, da diese fest zu einem ORM gehören,
  • alle Attachments und
  • alle Source-Relationen. Die dabei referenzierten Objekte werden natürlich nicht kopiert.

Nicht geklont werden:

  • Die Record History,
  • MigrationID und
  • andere mit `[PropertyNotClonable]` gekennzeichnete Ausnahmen.

Wenn man diese Funktionalität nutzen möchte, muss man darauf achten, dass für den gewünschten ORM-Typ gegebenenfalls Ausnahmen mit `[PropertyNotClonable]` definiert werden müssen. Das ist vor allem bei ID-Properties aus externen Systemen (Beispiel MigrationID) oder bei programmierten XPO-Relation zu anderen, klonbaren Typen zu empfehlen.

Auch Teildatensätze selbst können geklont werden (OrmSubBABase.Clone). Dabei wird ein neuer Teildatensatz erstellt, der zunächst nicht zu einem Eltern-Datensatz gehört. Das muss danach über das Hinzufügen zu einer Teildatensatz-Collection erledigt werden.