MetaField class
Represents the information that an object contains.
A MetaField object represents a meta-class field. Fields represent information that an object contains. Fields are like variables because they can be directly read or set. For example, if you have an object named Car, you can store its color in a field named Color.
Note
When you create and delete meta-enums, remember that you can only modify a meta-model in Design mode. See the MetaClassManager class section.
From the MetaField object, you can get complete information about fields:
- Name
- meta-Type
- Default Value
- Formula for auto-calculated columns
- Is Nullable
- Is ReadOnly
- Is Primary Key
Note
Business Foundation (BF) uses a meta-field installer assigned to the meta-type to add meta-fields to meta-classes.
Get a meta-field collection
The collection of meta-fields is available from the MetaClass.Fields property and it returns a MetaFieldCollectionobject.
Example: The following example writes all fields to trace
foreach (MetaField field in mc.Fields)
{
System.Diagnostics.Trace.WriteLine(field.Name);
}
Create a meta-field
Call the CreateMetaField method of the MetaClass class, passing name, friendly name, type, is nullable flag, default value and attributes to create a new meta-field. The attributes depend on the meta-type.
Example: Create a new Guid meta-field
public MetaField CreateGuid(string name, string friendlyName, bool isNullable)
{
if (name == null)
throw new ArgumentNullException("name");
if (friendlyName == null)
throw new ArgumentNullException("friendlyName");
AttributeCollection attr = new AttributeCollection();
string defaultValue = isNullable ? string.Empty : "newid()";
MetaField retVal = this.MetaClass.CreateMetaField(name, friendlyName, MetaFieldType.Guid, isNullable, defaultValue, attr);
return retVal;
}
Delete a meta-field
Call the DeleteMetaField method of the MetaClass class, passing the meta-field object, to delete a field from the meta-class.
Example: Find column by name and drop
// Delete field
mc. DeleteMetaField(mc.Fields\["Book Title"]);
Updated 7 months ago