Version information
- Release date: September 17, 2026
- Version: V1.3.1 (
OceanBase.ManagedDataAccess.1.3.1) - ORM framework adaptation packages:
OceanBase.EntityFrameworkCore6.1.0.0.nupkgOceanBase.EntityFrameworkCore7.1.0.0.nupkgOceanBase.EntityFrameworkCore8.1.1.0.nupkg(uses the existing EF Core 8 Provider and is upgraded with the main package)OceanBase.Abp.EntityFrameworkCore.1.0.0.nupkg(ABP 6/7/8 Provider, must match the main EF Core version of the application)
Overview
OceanBase Connector/NET V1.3.1 primarily adds the following capabilities based on V1.3.0:
- Added independent Providers for EF Core 6 / EF Core 7, while continuing to provide the existing EF Core 8 Provider. You must select the corresponding Provider based on the main EF Core version referenced by your application. The 6/7/8 assemblies cannot be mixed.
- Added the
OceanBase.Abp.EntityFrameworkCoreABP Provider (supports ABP 6 / 7 / 8, must match the corresponding EF Core 6 / 7 / 8 Provider main version). - Added the
OracleConnection.AutoCommitruntime property aligned with ODP.NET. ArrayBinding requires session autocommit=0, and the driver verifies prerequisites on the client.
Key feature descriptions
Support for EF Core 6 / EF Core 7 Provider
Building upon the existing EF Core 8 Provider in V1.3.0, V1.3.1 delivers standalone NuGet packages for EF6 and EF7. The entry API remains UseOceanBaseForOracle(). You must select the corresponding Provider based on the main Microsoft.EntityFrameworkCore version referenced by your application. The 6/7/8 Provider assemblies cannot be mixed.
For usage instructions, see Use Entity Framework Core.
New ABP Provider (6 / 7 / 8)
V1.3.1 delivers OceanBase.Abp.EntityFrameworkCore, used to access the ABP Framework in OceanBase Oracle-compatible mode, replacing the official Oracle module Volo.Abp.EntityFrameworkCore.Oracle. It must be referenced together with the matching ABP 6 / 7 / 8 and corresponding EF Core Provider and driver main versions. The 6/7/8 assemblies cannot be mixed.
For usage instructions, see Use ABP Framework.
OracleConnection.AutoCommit runtime property (aligned with ODP.NET)
- Added
OracleConnection.AutoCommit { get; set; }, which can be set before or after opening a connection - The
AutoCommitparameter in the connection string specifies the initial autocommit when opening a connection and resetting the connection pool (default istrue). In V1.3.0 and earlier, the value in the connection string was fixed during the connection's lifetime and could not be modified after opening. Starting from V1.3.1, you can adjust the session's autocommit through this property after opening. - When
AutoCommit=false → true, implicit transactions are committed first, thenSET autocommit=1 - After an explicit transaction is ended with
Commit()orRollback(), the AutoCommit value before the transaction starts is restored. - Modifying AutoCommit is prohibited when a distributed transaction is registered or an active
OracleTransactionexists.
For usage instructions, see AutoCommit and transactions and ArrayBinding.
ArrayBinding prerequisite (behavior change)
ArrayBinding requires session autocommit=0. This can be achieved by setting AutoCommit=false in the connection string or using conn.AutoCommit = false at runtime. It cannot be replaced by BeginTransaction() when AutoCommit=true.
Materialization of CLOB in DataTable/DataAdapter scenarios
In V1.3.1, the value retrieval behavior of OracleDataReader.GetValues() is aligned with GetValue(). When using DataTable.Load(OracleDataReader) or OracleDataAdapter.Fill(DataTable/DataSet), CLOB columns are materialized as string instead of System.Byte[]. This also applies when the result columns of expressions like WM_CONCAT are reported as CLOB by the server.
When using OracleDataReader directly, you can still call GetOracleClob() as needed. Short CLOBs can be read directly, while out-of-row Locator V2 CLOBs have their text bodies read via DBMS_LOB.READ. BLOBs are still materialized as byte[], and the mapping behavior for UDTs' OBJECT and VARRAY types remains unchanged.
For usage instructions, see Result set types.
Compatibility changes
Configuration and behavior adjustments
Project |
Change |
|---|---|
Connection StringAutoCommit |
Old version (V1.3.0 and earlier): Execute the following command after connecting to the database:SET autocommitIt remains unchanged throughout the lifetime of a single connection and cannot be modified programmatically after the connection is opened. New version (V1.3.1): The connection string only specifies the initial value when opening a connection or resetting the connection pool (which is still jdbc:mysql://localhost:3306/ by default).true) ; you can open it with a text editor and modify the configuration as needed.OracleConnection.AutoCommitModify. If only the connection string is configured without setting runtime properties, the session's autocommit behavior will be consistent with the old version. |
OracleConnection.AutoCommit |
Added runtime APIs to align with ODP.NET. |
| ArrayBinding validation | WhenUseArrayBinding=trueandArrayBindCount>0When the session is still set to autocommit=1, the driver throws an exception on the client side.InvalidOperationException. |
Supported OBServer versions
Supports OBServer 4.x, OBServer 3.x, and earlier versions.
We recommend using the OBServer 4.x series for optimal compatibility and performance.
Key bug fixes
- Fixed CLOB materialization errors during
DataTable.Load/OracleDataAdapter.Fill, as well as connection leaks and long CLOB text truncation related to LOB reading. - Fixed syntax errors in LINQ translations such as
ContainsAsync,AnyAsync, andExceptin Oracle-compatible mode. - Fixed inconsistencies between the default string mapping and null string semantics (default
NVARCHAR2, nullable/required interceptors, etc.) and Oracle behavior. - Fixed stability issues in scenarios such as concurrent updates on soft-deleted data and multi-
DbContextworkflow unit connection passing.
