Siaqodb storable objects may have a spacial public integer property named OID. Additional members can be any of the following types:

  1. Basic Types: int, uint, short, string, ushort, byte, sbyte, long, ulong, float, double, decimal, char, bool, TimeSpan, DateTime, DateTimeOffset, Guid, enum.

  2. Complex Types: IList derived types, List[T], Arrays, jagged Arrays, Dictionary [T,V].

  3. Nested Objects: object members can include other objects with basic or complex members.

  4. Nested Lists: object members can include lists of lists or lists of objects.

Example:

public class MyFullType
{

public int i;
public uint iu;
public short s;
public string str;
public ushort us;
public byte b;
public sbyte sb;
public long l;
public ulong ul;
public float f;
public double d;
public decimal de;
public char c;
public bool bo;
public TimeSpan ts;
public DateTime dt;
public DateTime dtOffset;
public Guid g;
public TestEnum enn = TestEnum.Two;

public List<int> listInt;

public List<Employee> listEmployees;

public int[] arrayInt;

public int[][][] matrix;

public List<List<int>> NestedList;

public int OID{get;set;}

}
public enum TestEnum { One,Two}

Strings

Siaqodb stores strings either as fixed character type or a variable length text block. Fixed character fields are stored sequentially along with other basic Field types. Variable length text blocks are stored as a pointer to a block stored elsewhere in the database.

The default length for fixed character Fields is 100 characters. You can change the fixed character length for a given Field by decorating the Field with the MaxLength(…) attribute:

public class MyClass
{
.......

    [MaxLength(300)] 
            private string myString;

}

When a Field contains strings that vary greatly in length it is recommended to store the Field as a variable length text block. To do this use the Text attribute as shown below:

public class MyClass
    {
    .......

        [Text] 
            private string myString;

    }