Egenskaper
Dynamix stöder ett stort antal egenskaper som kan lagras på objekt utan att behöva använda egna tabeller eller databaskod. Normalt definieras själva egenskapen som static readonly (public om det finns anledning att nå den utifrån, exempelvis för sortering eller sökning). De egenskaper som kan lagras är:
Objekt - ObjectProperty
Lagrar en pekare till ett annat objekt. Dynamix hanterar automatiskt cacheuppdateringar mellan refererade objekt.
Exempel:
- C#
public static readonly ObjectProperty p_Details =
new ObjectProperty( "Details", typeof( Dynamix.NavigationItem ) );
public Dynamix.NavigationItem Details
{
get { return (Dynamix.NavigationItem)GetObjectPropertyValue( p_Details ); }
set { SetObjectPropertyValue( p_Details, value ); }
}
På objektegenskaper kan också ett antal flaggor sättas:
ObjectPropertyFlags.Cascaded
Sätt om objektet "äger" det objekt som pekas på och de alltså ska exempelvis raderas och kopieras tillsammans.
ObjectPropertyFlags.ReverseLookup
Sätt denna om egenskapen ska användas för att slå upp från det objekt som pekas på, dvs om Details-sidan i exemplet vill hitta vilket objekt som har pekat ut det.
Exempel:
- C#
public static readonly ObjectProperty p_Link =
new ObjectProperty( "Link", typeof( Dynamix.Link ), ObjectPropertyFlags.Cascaded );
När objektet kopieras kommer systemet även att göra en kopia av länken.
Objektlistor - ObjectListProperty
Lagrar en lista av objekt
Exempel:
- C#
public static readonly ObjectListProperty p_Categories =
new ObjectListProperty( "Categories", typeof( Dynamix.Category ) );
public ObjectList Categories
{
get { return GetPropertyList( p_Categoriers ); }
}
Även här kan objektflaggor sättas.
Se också: Objeklistor, sökning och sortering
Text - TextProperty
Exempel:
- C#
public static readonly TextProperty p_Name =
new TextProperty( "Name" );
public string Name
{
get { return GetObjectPropertyValue( p_Name ); }
set { SetObjectPropertyValue( p_Name, value ); }
}
Datum och tid - DateTimeProperty
Exempel:
- C#
public static readonly DateTimeProperty p_CreatedAt =
new DateTimeProperty( "CreatedAt" );
public DateTime CreatedAt
{
get { return GetObjectPropertyValue( p_CreatedAt ); }
set { SetObjectPropertyValue( p_CreatedAt, value ); }
}
Boolskt värde - BoolProperty
Exempel:
- C#
public static readonly BoolProperty p_IsVisible =
new BoolProperty( "IsVisible" );
public bool IsVisible
{
get { return GetObjectPropertyValue( p_IsVisible ); }
set { SetObjectPropertyValue( p_IsVisible, value ); }
}
Heltal - IntProperty
Exempel:
- C#
public static readonly IntProperty p_Rows =
new IntProperty( "Rows" );
public int Rows
{
get { return GetObjectPropertyValue( p_Rows ); }
set { SetObjectPropertyValue( p_Rows, value ); }
}
Decimaltal - DecimalProperty
Exempel:
- C#
public static readonly DecimalProperty p_Price =
new DateTimeProperty( "Price" );
public decimal Price
{
get { return GetObjectPropertyValue( p_Price ); }
set { SetObjectPropertyValue( p_Price, value ); }
}
Typ - TypeProperty
Exempel:
- C#
public static readonly TypeProperty p_Type =
new DateTimeProperty( "Type" );
public Type Type
{
get { return GetObjectPropertyValue( p_Type ); }
set { SetObjectPropertyValue( p_Type, value ); }
}
Dimensioner - UnitProperty
Exempel:
- C#
public static readonly UnitProperty p_Width=
new UnitProperty( "Width" );
public Unit Width
{
get { return GetObjectPropertyValue( p_Width ); }
set { SetObjectPropertyValue( p_Width, value ); }
}
Uppräkningsvärde - EnumProperty
Exempel:
- C#
public enum Color
{
Red,
Green,
Blue,
Yellow
}
public static readonly EnumProperty p_Color =
new EnumProperty( "Color" );
public Color Color
{
get { return (Color)GetObjectPropertyValue( p_Color ); }
set { SetObjectPropertyValue( p_Color , value ); }
}
Andra egenskaper
Om de ovan uppräknade egenskaperna inte täcker in den aktuella situationen kan ofta TextProperties ändå användas för att lagra informationen. Dynamix lagrar internt flera av typerna som text.