Release History

By product

Data Access Free 2010.1624

June 23, 2010

Telerik OpenAccess ORM Express Q1 2010 SP 2 Release Notes (v2010.01.0623)

Enhancements

  • Class Generation: Avoid (make configurable) creation of non-CLS compliant field / property names - When a column is named _id, the resulting field _id is generated which immediately generates a warning for a non-CLS compliant identifier.
    We should allow the automatic correction of such fields, configurable.
  • Backend Specific concurrency columns are not recognized as version columns by the default mapping in the DSL - The backend specific version columns and the fields mapped to them(Timestamp) must be tagged with the right concurrency control facets by the default mapping.
  • When the model name is changed through the model settings dialog the change is not reflected in the metadatamodel - The changes are lost but should be stored inside the xml rlinq file.
  • When the uses is asked if he wanted a domain model and clicks yes the add new item wizard should be started. - When the uses is asked if he wanted a domain model and clicks yes  the add new item wizard should be started.
  • LINQ: Improved support for DateTime constructor expressions - It is possible now to use expressions like
    from p in Scope.Extent<Person>() where p.Birthday = new DateTime(1967,3,29) select p
    The DateTime(int,int,int) and DateTime(int,int,int,int,int,int) methods are supported and will be converted to the corresponding SQL.
  • Renaming a class in the designer does not rename the assciated OID class if such exists. - If a class that has been renamed has an OID inner class, the OID class should be renamed along with its parent class.
  • MySql autoinc columns are not recognized automatically - Autoinc columns of MySql tables cannot be recognized automatically while reverse mapping a database. Workaround: Enable the Auto Increment check box in the Reverse mapping wizard for such columns.
  • New UI for the BackendConfiguration in the ModelSettings dialog - Create comprehensive UI for the Backend Configurations in the Model Settings Dialog.

Fixes

  • LINQ: Projection into known type from a joined expression fails - When projecting joined expressions into a known type (not an anonymous type), the generated SQL is wrong.
  • The UpdateFromDatabase wizard does not resolve the |DataDirectory| directive - When the connection string of the domain model contains a |DataDirectory| directive, the database path is not resolved correctly and the database cannot be found.
  • Enhancer does not intercept field access in class constructor - If a persistent field is accessed inside a constructor of another class the call is not intercepted and the value might not be loaded from the database.
  • Silverlight Paging: OpenAccessDomainService throws an exception when total count is to be included in query - An 'not a method'exception is thrown when the SL uses paging, which includes the total count information.
  • Configuration fails with an cast exception - A cast exception can be thrown when an integer backend configuration value was modified.
  • Query: Exception thrown that a scalar variable must be declared when certain methods (like String.IsNullOrEmpty(parameter) ) are used - When certain methods (like string.IsNullOrEmpty(x)) translate to a SQL text like (x IS NULL OR x = ''), the duplicate use of x when it is actually a ? parameter causes an internal error that leads to a missing SQL parameter value.
  • LINQ: Testing the type of a reference with 'IS' produces incorrect SQL - The LINQ expression "pc.refField is pctype" produces wrong SQL.
  • LINQ: Support for LongCount() added - Support for Queryable.LongCount() was added.
  • LINQ: Support for expressions generated by the DataService request processor - Support for LINQ queries as generated by the DataServices request processor was improved (String.Contains(), multiple orderings)
  • Enhancer damages generic function call with reference parameter - If a generic function or a function of a generic type with a ref parameter is called and the ref parameter is a persistent field, the resulting assembly is damaged. Peverify reports not loadable types.
  • Enhancer cannot handle resources without binary content - If an assembly has an embedded resource that only contains string data, the enhancer throws a null reference exception.
  • If an assembly with a strong name is enhanced without passing in the key file the assembly is no readable - If an assembly with a strong name is enhanced and no key file or key container is passed to the enhancer, the resulting assembly is not readable because it still says that it has a strong name but the strong name is not present. Now it removes the strong name completely and can be signed by using the sn.exe tool.
  • LINQ: When ordering is two times on the same field, the generated SQL is wrong - When a LINQ expression tree like x.OrderBy(u => u.Id).ThenBy(c => c.Id) is encountered, the generated SQL was wrong.
  • LINQ: Enable handling of parameter.ToString() method calls in LINQ expressions - When an expression fragment like 'pc.stringfield == parameter.ToString()' is encountered, an exception was thrown.
  • OQL: NullReferenceException when query was already available from compiled query cache - When a query was cached, a null reference exception occured while reusing the query.
  • Visual Studio 2010: Assembly signing with .pfx file not working with enhancer - Assembly signing with key containers (generated by using .pfx files) did not sign the enhanced assembly.
  • Using VARBINARY as parameter type for GetSqlQuery() throws an exception - When using GetSqlQuery("[AStoredProc] ?",null,"VARBINARY val").Execute(new byte[5]), the execution failed as there was an exception thrown (Type not supported for setObject).
  • Persistent objects not serializable - The new enhancer does not add the nonserialize settings to the internal OpenAccess fields. This leads to an exception that the OpenAccess PCStateMan is not serializable.
  • The use schema name as a prefix setting does not work - The use schema name as a prefix setting does not work. Regardless of the status classes are generated without a prefix.