我是与连接器、数据库等相关的一切的初学者
我的公司有一个用于数据库的 Devart 连接器,我们正在尝试使用 ODP.NET 进行升级。
当我更改所有内容并尝试重新启动迁移时,我收到此错误。
ORA-08177: 无法序列化此事务的访问。
我为 ODP.NET 安装了这些版本 这是我的 oracle db 版本
然后我阅读了自述文件并更新了 web.config、我的上下文和我的基本控制器。 当我删除所有迁移、创建第一个迁移并尝试更新数据库(首先我从数据库中删除所有表和视图)时,我收到此错误
ORA-08177: 无法序列化此事务的访问。
我尝试将事务隔离级别更改为已提交读(因为我读到这可能是问题所在),但什么也没有。
我尝试降级 ODP.NET 版本(出于同样的原因),但没有成功。
我会尝试分享代码,但来自我的公司,所以我必须小心。
我的 web.config
<connectionStrings>
<add name="DBContext" connectionString="User Id=aaaa;Password=1234;Data Source=OracleDataSource" providerName="Oracle.ManagedDataAccess.Client" />
</connectionStrings>
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<!-- Customize these connection alias settings to connect to Oracle DB -->
<dataSource alias="OracleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.68.202)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))) " />
</dataSources>
</version>
</oracle.manageddataaccess.client>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
<dependentAssembly>
<publisherPolicy apply="no" />
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
</dependentAssembly>
</assemblyBinding>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v13.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</entityFramework>
我的数据库上下文
namespace UFV.DBContext
{
public class UFVDBContext : DbContext
{
static UFVDBContext()
{
Database.SetInitializer<UFVDBContext>(new MigrateDatabaseToLatestVersion<UFVDBContext, Configuration>());
}
//my entities...
base.OnModelCreating ( modelBuilder );
modelBuilder.HasDefaultSchema("MyScheme");
modelBuilder.Conventions.Remove<PluralizingTableNameConvention> ();
在我的基本控制器中,我只将库从 Devart 更改为 Oracle
如果我的英语不是最好的或者我没有分享足够的信息,我很抱歉,我会澄清您可能有的任何问题。
好的,我的问题解决了。连接器的 ODP 版本不兼容。我不得不降级到版本 12.2.11 ODP。