Starcounter supports most of the .NET CLR primitive types.
Boolean
Byte
DateTime
– limitations
Decimal
– limitations
Double
Int16
Int32
Int64
SByte
Single
String
– limitations
UInt16
UInt32
UInt64
Starcounter saves and returns all DateTime
values in UTC.
[Database]public abstract class Item{public abstract DateTime Value { get; set; }public void TestDateTimeValues(){var v = new DateTime(DateTime.Now.Ticks, DateTimeKind.Local);// The value and the kind are converted into UTC when the CLR type// is converted to a database type, which happens here:this.Value = v;var kindAfter = this.Value.Kind; // System.DateTimeKind.Utc}}
Starcounter does not yet support the DateTimeOffset
data type.
The Decimal
values are stored as a 64-bit integer and has a precision of six decimals and a range between -4398046511103.999999
and 4398046511104.999999
. Trying to store a Decimal
value with higher precision or outside of the specified range will result in the following exception: ScErrCLRDecToX6DecRangeError (SCERR4246)
. In those cases, Double
can be used if the data loss is acceptable.
The string data type can store data up to 1 MiB of encoded text. Thus, all strings with a length of less than 270600 will fit into the string data type. Strings with more than 270600 characters might fit depending on string content.
Starcounter does not yet support non-nullable strings.
The Binary
data type is a Starcounter-defined datatype used to store binary data in the database. The maximum size of a binary field is 1 MiB.
Starcounter only supports nullable binary properties.
public abstract class Item{// This defines a nullable binary property.// It is supported by Starcounter.public abstract Binary? NonNullBinary { get; set; }// This defines a not nullable binary property.// It is not yet supported by Starcounter.public abstract Binary NonNullBinary { get; set; }}