Exceptions may be thrown by the database engine if invalid actions are taken. This document will outline which types of exceptions you may come across in order to catch them properly.

SiaqodbException: Generic exception thrown when database operations are unable to take place. The most common case is trying to use a database transaction after is has been closed. Ensure that you wrap your transaction usage in a 'using' clause to avoid this issue.

TypeChangedException: This exception is thrown when your models change in an unsupported way (e.g. you change a field from a string to an int). Ensure you follow the migration rules to keep from seeing this exception.

NotSupportedTypeException: Thrown when you try to store an unsupported type in the database. Please refer to Supported Types for more information.

UniqueConstraintException: Thrown when you try to store two objects with the same unique constraint.

LINQUnoptimizeException: Certain LINQ operations such as multi-join are not yet supported and this runtime exception will be thrown when you attempt to use them.

InvalidLicenseException: If your license key does not match the version of Siaqodb you are using or your trial key runs out or you are using a different development (DEBUG) machine than the one you used to create your license; this exception will be thrown.