Release Bulletin of SnapObjects 1.0.x
This document provides the release notes for Appeon SnapObjects 1.0.x.
SnapObjects 1.0.x has the following known issues:
If you use GetValue method (syntax #4) to get value in a DataUnpacker object, if the value is not null, the type parameter
cannot be Datetime?.
For example, the following code will throw an exception “Newtonsoft.Json.JsonReaderException : Unexpected character encountered while parsing value: 2. Path '', line 1, position 1.”
var unpacker = new DataUnpacker(json, DataFormat.Json); var value = unpacker.GetValue<DateTime?>("datetime");
ModelStore does not support string array parameters. Instead, you must use List
The data retrieved by the LoadAllByPage method from SqlModelMapper is not ordered in the same way as in the model.
In SqlModelMapper, a master model cannot pass parameters to its detail models yet.
If a ModelStore gets its data from columns that are named the same in two different tables, and no alias are assigned for the duplicate columns, the RetrieveByKey/RetrieveAll method incorrectly retrieves the same value for the columns.
When retrieving data to a DynamicModel, if the value of a column is null in database, the value of the column in the DynamicModel is the default value of the column data type in C#.
It is unsupported to specify <table_name>.<column_name> in SqlColumn, for example, SqlColumn("Product.ProductID").
IDataStore.Evaluate can only evaluate commonly-used expression functions. User-defined functions must be specified in startup.
In SqlQueryBuilder, when you specify a column name, the name shall not contain dot sign (.) in it. For example, the following script uses “a.b” as the column name and will fail to create the column.
var builder = new SqlQueryBuilder(); builder.Select("id") .Select("[a.b]") .From("TestTable"); string sql = builder.ToSqlString(_context);
Database related known issues
- SQL BatchExecuting is not supported.
- The SqlModelMapper Avg method might not work well. For example, if the result has too many digits after the decimal point, the method may throw an error.
- It is unsupported to update an INTERVAL YEAR TO MONTH value.
- If a model has both [Top] and [SqlUnion] settings, the SQL generated for the model will be incorrect.
- The SqlExecutor.SelectProcedure/SelectProcedureToStore method only supports SQL stored procedures that returns result-set with cursor, and the cursor parameter shall be placed at the end.
- The following data types may not work well: timetz, JSON, bit(1), varbit, array, point,line, circle, box, and polygon.
- It is unsupported to get the returned value from a store procedure.