转向 ODP.NET -> ORA-08177:无法序列化此事务的访问

问题描述 投票:0回答:1

我是与连接器、数据库等相关的一切的初学者

我的公司有一个用于数据库的 Devart 连接器,我们正在尝试使用 ODP.NET 进行升级。

当我更改所有内容并尝试重新启动迁移时,我收到此错误。

ORA-08177: 无法序列化此事务的访问。

我为 ODP.NET 安装了这些版本 ODP Versions 这是我的 oracle db 版本 Oracle DB version

然后我阅读了自述文件并更新了 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

如果我的英语不是最好的或者我没有分享足够的信息,我很抱歉,我会澄清您可能有的任何问题。

database entity-framework-6 database-migration odp.net
1个回答
0
投票

好的,我的问题解决了。连接器的 ODP 版本不兼容。我不得不降级到版本 12.2.11 ODP。

© www.soinside.com 2019 - 2024. All rights reserved.