Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
Builder.Add.Class(nameof(Elements.Office));

This will return an instace of ClassBuilder that can be used to furhter configure the created class.

...

Code Block
Builder.Add.Class(nameof(Elements.Office))
        .Configure(cls =>
        {
          // Do something with the IMetaClass
        });

Property

To add an additional property simply use:

Code Block
Builder.Add.Property(Elements.Office, "Name", MetaType.Text);

This will return an instace of PropertyBuilder that can be used to furhter configure the created property.

...

Code Block
Builder.Add.Property(Elements.Office, "ShowPeople", MetaType.Boolean)
  .Caption(SwissGerman, "Personen anzeigen")
  .Required()
  .Transient()
  .DefaultExpression("true");

There's a fallback available in case the developer needs access to the underlying IMetaProperty:

Code Block
Builder.Add.Property(Elements.Office, "ShowPeople", MetaType.Boolean)
        .Configure(prop =>
        {
          // Do something with the IMetaProperty
        });

Relation

To add a relation simply use:

Code Block
Builder.Add.Relation(Elements.Company, AssociationType.ZeroOrOneToMany, Elements.Office, MetaPathRule.Cascade)

This will return an instance of RelationBuilder that can be used to further configure the created relation.

...

Code Block
Builder.Add.Relation(Elements.Company, AssociationType.ZeroOrOneToMany, Elements.Office, MetaPathRule.Cascade)
  .Caption(SwissGerman, "Büros")
  .InverseCaption(SwissGerman, "Firma")
  .Control(nameof(ControlType.GridEditor))
  .InverseControl(nameof(ControlType.SearchEdit))
  .InverseLayout(LayoutType.Detail, "CompactLayout")
  .Rename("Offices");

There's a fallback available in case the developer needs access to the underlying generated elements:

Code Block
Builder.Add.Relation(Elements.Company, AssociationType.ZeroOrOneToMany, Elements.Office, MetaPathRule.Cascade)
  .Configure(tuple =>
  {
    // tuple.relation;
    // tuple.inverseRelation;
    // tuple.foreignKey;
    // tuple.path;
    // tuple.index;
  });

Remove

The Builder exposes a property Remove that can be used to either remove a class or property from the model.

Code Block
Builder.Remove.Class("Office");
Builder.Remove.Property("Office", "Name");

Get

The Builder exposes a property Get that can be used to either retrieve a class or property from the model.

...