How does we persist an unsigned long property on databases that doesn't support it?
At the time of writing, only the SQLite dialect supports DBType.UInt64 (if I'm right).
I've found many way to achieve this:
- Map it with type="Serializable"
- Create a custom value type that convert UInt64 <-> string
- Define a private string property on the persistent class, wrap the public UInt64 property around it (Convert.ToString()/Convert.ToUInt64()) and declare only the private property on the mapping file
- Define a private decimal property on the persistent class, wrap the public UInt64 property around it and declare only the private property on the mapping file with sql-type="NUMERIC(20, 0)"
Is there a "standard" way or even a better way than those listed before to map an UInt64 type on dialects that doesn't support it?