Devart is glad to announce the release of dotConnect for Oracle 8.2, Devart ADO.NET data provider for Oracle with support for Entity Framework, LinqConnect (LINQ to Oracle) and NHibernate! The new version has lots of improvements, including starting and stopping an Oracle database instance, better XMLTYPE support, DBMS_APPLICATION_INFO package support, better OCI Statement Caching support, etc.
LINQ to Entities Improvements
The following methods of the SqlFunctions class, when called from LINQ to Entities, are now converted to Oracle-specific SQL statements in runtime: Acos, Asin, Ascii, Atan, Atan2, Char, Cos, CurrentUser, DataLength, Exp, Rand, Sign, Sin, SoundCode, SquareRoot, StringConvert, Tan. Thus, using SqlFunctions class methods provides better capabilities for creating cross-database LINQ to Entities queries, for example, queries for SQL Server and Oracle.
Starting and Stopping Oracle Database Instance
dotConnect for Oracle 8.2 introduces OracleDatabase class that allows you to start and stop Oracle database instances.
OCI Statement Caching Support Improvements
Now OCI Statement Caching is also supported when Unicode=true or "OCI Connection Pool"=True. The new "Statement Cache Purge" connection string parameter allows you to clean OCI Statement Cache when returning a connection to a pool. OCI Statement Cache can be also cleaned at any time by calling the new PurgeStatementCache() method of the OracleConnection class.
DBMS_APPLICATION_INFO Package Support
The new version of dotConnect for Oracle allows you to record names of executing modules or transactions in the database using the DBMS_APPLICATION_INFO package in order to ease the process of tracking the performance of various modules and debugging. The following properties of the OracleConnection class allow you to record the tracking information:
Proxy Connection Improvements
dotConnect for Oracle allows you to specify proxy connection using the new connection string parameters "Proxy User Id" and "Proxy Password" in the OCI mode.
dotConnect for Oracle 8.2 also offers a number of other improvements, for example, the ShortServerVersion property of OracleConnection, that simplifies getting the version of the Oracle database, a connection is made to.
The new "Describe Stored Procedure" connection string parameter along with the new ImplicitRefCursors and IsTableValuedFunction properties of the OracleCommand class are implemented for increasing the performance of the stored procedure execution with the ExecuteReader()/ExecuteScalar() methods of OracleCommand, when using CommandType.StoredProcedure
Here is the complete list of dotConnect for Oracle 8.2.80 features:
- The functionality of starting and stopping an Oracle database instance is implemented in the OracleDatabase class (only in the OCI mode)
- Working with XMLTYPE in the OCI mode when Unicode = True is fully supported
- Specifying proxy connection via the connection string with the new connection string parameters "Proxy User Id" and "Proxy Password" is supported (only in the OCI mode)
- DBMS_APPLICATION_INFO package features are supported via the new properties of the OracleConnection class: ModuleName, ActionName, ClientInfo, and the SetDbmsApplicationInfo method
- OCI Statement Caching support is improved: caching is now also supported in case when Unicode = True or "Oci Connection Pool" = True
- OCI Statement Cache cleaning when returning a connection to a pool is implemented via the new "Statement Cache Purge" connection string parameter (Default value is False)
- OCI Statement Cache cleaning on user request is implemented via the new PurgeStatementCache() method of the OracleConnection class
- The possibility to speed up the stored procedure execution with the ExecuteReader()/ExecuteScalar() methods of OracleCommand, when using CommandType.StoredProcedure, is implemented via the new connection string parameter "Describe Stored Procedure" (Default value is True) and the new ImplicitRefCursors and IsTableValuedFunction properties of the OracleCommand class
- Execution of non-pipelined table function with CommandType.StoredProcedure is supported when the IsTableValuedFunction property of OracleCommand equals to True
- The TableValuedResultType property of OracleCommand is now deprecated and not recommended to use. Use the IsTableValuedFunction property instead
- Additional overloads of the OracleCommand constructor and CreateCommand method of OracleConnection class are added to decrease the code for creating an OracleCommand instance
- Additional overloads of the GetValues(), GetOracleValues(), and GetProviderSpecificValues() methods that don't require the user to create an array of the required size beforehand are added to the OracleDataReader class to ease data retrieving, for example only a single record is read
- The return type of the Clone() method of OracleConnection, OracleCommand, and OracleParameter classes is now the same as the type of the object, for which the method is implemented, instead of System.Object
- DbType.Xml now can be assigned to the DbType property of OracleParameter (it means the same as oracleParameter.OracleDbType = OracleDbType.Xml) in order to ease working with XMLTYPE when using base ADO.NET without using provider-specific features
- Retrieving version of the Oracle database, a connection is made to, is improved: the new ShortServerVersion property of the Version type is implemented in the OracleConnection class
- The bug with retrieving the INTERVAL DAY TO SECOND values on x64 platform in OCI mode is fixed
- The bug with not including the namespace name in the XML mapping, when namespaces for entity classes and context class are different, is fixed (LinqConnect models)
- The bug with creating models for Entity Framework 6 on the workstation without .NET Framework 4.5 installed is fixed (Entity Framework models)
- The bug with association mapping in the DbContext template is fixed (Entity Framework models)
- The bug with composite keys mapping in the DbContext template is fixed (Entity Framework models)
- The Acos, Asin, Ascii, Atan, Atan2, Char, Cos, CurrentUser, DataLength, Exp, Rand, Sign, Sin, SoundCode, SquareRoot, StringConvert, Tan methods of the SqlFunctions class in LINQ to Entities are supported to be converted to Oracle-specific SQL statements in runtime
- The generation of SQL literals for DateTimeOffset and TimeSpan values is improved: shortened form is used now if possible
- The bug with generation of SQL literals for DateTimeOffset values is fixed
- The bug with using the CreateTime canonical function with expressions (not constants) as arguments is fixed
- The bug with changing the MigrationHistory table when migrating from EF4/EF5 to EF6, when config.Workarounds.DisableQuoting = True, is fixed