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:

  1. C#
  1. public static readonly ObjectProperty p_Details =
  2. new ObjectProperty( "Details", typeof( Dynamix.NavigationItem ) );
  3. public Dynamix.NavigationItem Details
  4. {
  5. get { return (Dynamix.NavigationItem)GetObjectPropertyValue( p_Details ); }
  6. set { SetObjectPropertyValue( p_Details, value ); }
  7. }

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:

  1. C#
  1. public static readonly ObjectProperty p_Link =
  2. 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:

  1. C#
  1. public static readonly ObjectListProperty p_Categories =
  2. new ObjectListProperty( "Categories", typeof( Dynamix.Category ) );
  3. public ObjectList Categories
  4. {
  5. get { return GetPropertyList( p_Categoriers ); }
  6. }

Även här kan objektflaggor sättas.

Se också: Objeklistor, sökning och sortering

Text - TextProperty

Exempel:

  1. C#
  1. public static readonly TextProperty p_Name =
  2. new TextProperty( "Name" );
  3. public string Name
  4. {
  5. get { return GetObjectPropertyValue( p_Name ); }
  6. set { SetObjectPropertyValue( p_Name, value ); }
  7. }

Datum och tid - DateTimeProperty

Exempel:

  1. C#
  1. public static readonly DateTimeProperty p_CreatedAt =
  2. new DateTimeProperty( "CreatedAt" );
  3. public DateTime CreatedAt
  4. {
  5. get { return GetObjectPropertyValue( p_CreatedAt ); }
  6. set { SetObjectPropertyValue( p_CreatedAt, value ); }
  7. }

Boolskt värde - BoolProperty

Exempel:

  1. C#
  1. public static readonly BoolProperty p_IsVisible =
  2. new BoolProperty( "IsVisible" );
  3. public bool IsVisible
  4. {
  5. get { return GetObjectPropertyValue( p_IsVisible ); }
  6. set { SetObjectPropertyValue( p_IsVisible, value ); }
  7. }

Heltal - IntProperty

Exempel:

  1. C#
  1. public static readonly IntProperty p_Rows =
  2. new IntProperty( "Rows" );
  3. public int Rows
  4. {
  5. get { return GetObjectPropertyValue( p_Rows ); }
  6. set { SetObjectPropertyValue( p_Rows, value ); }
  7. }

Decimaltal - DecimalProperty

Exempel:

  1. C#
  1. public static readonly DecimalProperty p_Price =
  2. new DateTimeProperty( "Price" );
  3. public decimal Price
  4. {
  5. get { return GetObjectPropertyValue( p_Price ); }
  6. set { SetObjectPropertyValue( p_Price, value ); }
  7. }

Typ - TypeProperty

Exempel:

  1. C#
  1. public static readonly TypeProperty p_Type =
  2. new DateTimeProperty( "Type" );
  3. public Type Type
  4. {
  5. get { return GetObjectPropertyValue( p_Type ); }
  6. set { SetObjectPropertyValue( p_Type, value ); }
  7. }

Dimensioner - UnitProperty

Exempel:

  1. C#
  1. public static readonly UnitProperty p_Width=
  2. new UnitProperty( "Width" );
  3. public Unit Width
  4. {
  5. get { return GetObjectPropertyValue( p_Width ); }
  6. set { SetObjectPropertyValue( p_Width, value ); }
  7. }

Uppräkningsvärde - EnumProperty

Exempel:

  1. C#
  1. public enum Color
  2. {
  3. Red,
  4. Green,
  5. Blue,
  6. Yellow
  7. }
  8. public static readonly EnumProperty p_Color =
  9. new EnumProperty( "Color" );
  10. public Color Color
  11. {
  12. get { return (Color)GetObjectPropertyValue( p_Color ); }
  13. set { SetObjectPropertyValue( p_Color , value ); }
  14. }

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.