Devart is glad to announce the release of dotConnect for Oracle 9.0, Devart ADO.NET data provider for Oracle with support for Entity Framework, LinqConnect (LINQ to Oracle) and NHibernate. The new version offers you support for Entity Framework Core RC1.
Entity Framework Core Support
Entity Framework Core (formerly, Entity Framework 7) is a new version or Microsoft widely used ORM, which is completely redesigned and intended to be a multi-platform and more lightweight ORM solution that can be used in traditional .NET scenarios, in cloud, on devices, etc.
Currently Entity Framework Core support in our providers is implemented only for the full .NET Framework platform .NET Framework 4.5.1 and higher.
Since Entity Framework Core is a completely redesigned ORM, which shares little but a name and LINQ support with previous Entity Framework versions, there are a lot of changes in our Entity Framework providers for Entity Framework Core. You can read more about these changes in our blog articles: Entity Framework Core 1 (Entity Framework 7) Support and Migrating Entity Framework 6 projects to Entity Framework Core 1 (Entity Framework 7).
Now OracleLoader has the Options property, which allows you to configure data loading behavior: keep constraints enabled during loading data, disable table logging, indexes, and triggers, use its own transaction for loading data, etc. New LoadTable method overloads allow you to load rows from a DataReader, array of DataRow objects or only rows with specific RowState from a DataTable. OracleLoader also now can load data to a specific partition of the partitioned table. A new RowsCopied event allows tracking data loading progress and correct abortion of the operation when necessary.
Performance Counters Support
dotConnect for Oracle now supports performance counters, providing various information about active/inactive/pooled connections, connects per second, etc. You can view this information in Windows Performance Monitor or access it programmatically. Note that they count only connections with the Use Performance Monitor connection string parameter set to true, and there should be at least one application with such connection running in order to see these counters in Windows Performance Monitor.
Transaction Guard Support
New version of dotConnect for Oracle provides advanced support for Transaction Guard with the new OracleLogicalTransaction class and OracleLogicalTransaction property of the OracleConnection class.
Now you can get source access to the OCI mode implementation of all the dotConnect for Oracle runtime classes by purchasing a license for the Professional Edition with Source Code. It has the same features as the Professional Edition and includes the source code for most of the runtime classes and features. Note that it does not include sources for design-time features, like Entity Developer or Package Wizard, and source code for the Direct mode comes in the obfuscated form.
Entity Framework Assembly Name Change
In addition to Entity Framework Core support we announce that our Entity Framework-related assemblies are renamed for all the providers that support Entity Framework. Previously each of the providers contained several assemblies with the same name - Devart.Data.Oracle.Entity.dll for different Entity Framework versions, which had different revision number. This could cause confusions, so now assemblies for different versions of Entity Framework have different names.
The same is related to the Devart.Data.Oracle.Entity.Migrations.dll assembly and to Devart.Data.Oracle.Entity.Spatials.dll assembly.
- Entity Framework v1:
Note that the revision number is no longer used to indicate the required Entity Framework version - it is 0 for all the assemblies.
Here is the complete list of dotConnect for Oracle 9.0.7 features:
- HA Events from Oracle RAC are supported
- Connection pool performance counters are implemented
- The PartitionName property, specifying the name of the partitioned table partition to load data into, is added to the OracleLoader class
- The new LoadTable overloads for loading data from a IDataReader, array of rows, or only rows with a specific RowState from a DataTable are added to the OracleLoader class
- The Options property of the new OracleLoaderOptions type that allows configuring OracleLoader behavior is added to the OracleLoader class
- The RowsCopied event that allows tracking data loading progress and correctly break the data loading operation is added to the OracleLoader class
- When loading data in the OCI mode using array binding, OracleLoader now adds the /* APPEND_VALUES */ hint to the generated SQL for Oracle 11g Release 2 and higher
- The OracleLogicalTransaction property is added to the OracleConnection class and the new OracleLogicalTransaction class is created for better support of Oracle Transaction Guard
- The OracleLob class is improved
- The OracleXml class is improved
- The OracleNumber structure is improved
- The OracleDate structure is improved
- The OracleTimeStamp structure is improved
- The OracleBoolean structure is improved
- The OracleCursor class is improved
- The OracleString class is improved
- The OracleRef class is improved
- Support for binary representation of Oracle data types is improved in OracleDate and OracleString structures
- The Run Once Command connection string parameter, which specifies a command or several commands to execute when the connection is opened the first time and not executed when the connection is taken from the pool, is added
- The Initialization Command connection string parameter is improved: now it can contain several commands
- All DbType enum values are supported
- Truncate member that represents the TRUNCATE TABLE statement is added to the SqlStatementType enum
- The GetMappedType method that returns the result .NET type for the specified precision and scale and allows testing specified number mapping configuration is added to the OracleNumberMappingCollection class
- The behavior is changed: the CreateColumns method of the OracleLoader class now does not add GENERATED ALWAYS AS IDENTITY columns to the collection in the OCI mode
- The behavior is changed: now the ORA-01805 error is ignored when Oracle Client and server have timezone files of different versions and a value of a TIMESTAMP WITH TIME ZONE with time zone explicitly specified by name is read
- The bug with cast for numeric values in code generated by the Oracle Object wizard is fixed
- Entity Framework Core RC1 is supported
- Entity Framework-related assemblies are renamed
- The config.QueryOptions.OrderByNullBehavior option is added to specify whether to add NULLS FIRST or NULLS LAST to the ORDER BY clause
- The bug with generating 'GENERATED BY DEFAULT ON NULL AS IDENTITY' for non-EntityKey identity properties in Oracle 12c using the Code-First/Code-First Migrations functionality is fixed