Q3 2013 SP1

Dec 10, 2013

Telerik Data Access Q3 2013 SP1

NEW

New Features

  • IsolationLevel specified per context - For specific application use cases, specifying an IsolationLevel on a per context basis can be used to achieve certain performance or behavioral effects.
  • Read operations executing without a transaction - By default, OpenAccess ORM will not use transactions for read operations anymore, leading to a performance improvement of up to 30% depending on the scenario. The transactions for reads can now be explicitly switched on by a new setting BackendConfiguration.Runtime.ReadWithoutTransactions.
  • Fluent API: Backend independent Dictionaries mapping - Improvements are implemented in the Fluent API Dictionary mapping allowing it to be used in a backend independent manner, without specifying SQL types, but only providing guidelines about the types (length, scale, "max" size, etc)

Improvements

  • Visual Studio 2013 officially supported in design-time - The design-time tools of OpenAccess ORM are now fully compatible with the official version of Visual Studio 2013.
  • PostgreSQL: Driver updated to 2.0.13.91 - The PostgreSQL driver version required by OpenAccess ORM and delivered in the installation package is updated to version 2.0.13.91.
  • SQLite: Schema read support for version 1.0.89 is added to optimize reading of columns and indexes - The schema read of SQLite schemata is optimized by addition support for a new driver version.
  • CreateDetachedCopy working out of the box with List as a parameter - The CreateDetachedCopy methods are now able to handle List without specifying the generic type parameter explicitly.
  • Visual Designer: Property descriptions improved and corrected - Missing property descriptions were added and the existing ones are reviewed and updated where necessary.
  • LINQ: Better handling of bool and bool? fields in outer joins - The translation of bool expressions used as a join condition were incorrect when in the bool property in use was mapped to MS SQL Server "bit" type.
  • LINQ: Support for non-column expressions in join key selectors - When a join (inner/outer) is made and the key selector for the join criteria is using some expressions that involve constants, parameters, conditions, methods (in essence: any expression that is not a simple MemberAccessExpression), the runtime was unable to use the join condition and will fail with an exception.
FIXED
  • Add OpenAccess Service: When an "ASP.NET Web API Service" is created in Visual Studio 2010, errors were thrown - Due to introduction of Web API 2.0 the NuGet package that Add OpenAccess was using requires minimum .Net Framework 4.5. We have introduced option to install manually the older Web API package for projects still targeting .Net Framework 4.0.
  • Add OpenAccess Service: Attributes mapping causing entities to be disabled for OData V3 services - Entities defined in Attribute mapped OpenAccess models are no longer wrongly disabled by Add OpenAccess Service validation engine.
  • Add OpenAccess Service: When having Associations in the model the generated methods using JSON are not working for RESTful Collection Services - The generated code for REST Services is changed. Previously generated code for REST Services was causing trouble when working with JSON serialization format. Currently the generated code supports either JSON or XML serialization, but not both. The desired format is selected on the Service Type step of the in Add OpenAccess Service wizard.
  • Code Generation: Connections from generated domain methods were not disposed - When mapping stored procedures and generating a domain method for them, the generation of the respective domain method was missing the Dispose call for the OaConnection.
  • Enhancer: Using private fields from base class as identity fields can throw System.FieldAccessException - The OpenAccess ORM Enhancer could throw System.FieldAccessException in some scenarios involving horizontal inheritance and usage of private fields.
  • LINQ: Grouping by boolean columns or expressions generating invalid SQL statements - Fixed SQL statement generation for LINQ grouping, ordering and projecting boolean columns and expressions.
  • Model Settings: Metric units added to the Command Timeout setting label - The enhancement emphasized that the Command Timeout is specified in seconds.
  • ObjectContainer: MarkContentAsNew() changing hollow objects - The MarkContentAsNew() method of the ObjectContainer will no longer handle hollow instances.
  • Oracle: Generated code for procedures with varchar2 parameters having a wrong size - When reverse mapping a stored procedure, the parameter size for a varchar2 parameter was int.MaxValue. This is now changed to 4000.
  • Profiler: SQL events and LINQ events showing different values in the "Rows" column - Wrong number of affected rows was presented in the Profiler grid for the events. The counts are now in sync and corrected.
  • Runtime: Default values not respected in some scenarios with shared fields - When an identity field is also used in an association, the fact that it has a default value was not respected in some scenarios.
  • Runtime: Exception messages “Failed to load assembly Telerik.OpenAccess.Runtime in type constructor Intellitrace” when using Medium Trust - Using OpenAccess under medium trust fails with a SecurityException when the database is opened. This regression is now fixed.
  • Vertical inheritance with auto-incremented keys failing based on alphabetical sorting - When vertical inheritance was used with auto-incremented identities, inserting objects in the database was failing in case the derived class name precedes the base class name alphabetically. This regression in Q3 2013 is now fixed.
Have a feature request?

Post your feedback via the Data Access feedback portal or the public forums

What's new across all Telerik products?

See the updates feed

Next Steps

Download for free

Get your fully functional free copy of Data Access.

Get Data Access Sample Kit

Including demos and articles to get you started.

Suggest new features

Help us shape our roadmap.