无法使用 Devart.Data.Oracle.EFCore 在 .NET 5 EF Core 中保存更改

Cannot SaveChanges in .NET 5 EF Core with Devart.Data.Oracle.EFCore

我目前正在开发 ASP .NET 5.0 应用程序 - 我将应用程序从 .NET3.1 迁移到 .NET 5.0。我使用 Entity Framework Core 和 Devart.Data.Oracle.EFCore 连接到 Oracle 数据库。

我尝试用字符串值保存一个简单的记录,当我调用 Context.SaveChangesAsync() 方法时,我得到这个错误:序列不包含任何元素,奇怪的是,异常的来源是 System.Linq => System.Linq.ThrowHelper.ThrowNoElementsException()。不幸的是,有一个 StackTrace 但没有详细的内部异常消息。

我在存储库中的保存方法如下所示:

public async Task<T> Add(T entity)
{
    // ...   
    await Context.AddAsync<T>(entity);
    await Context.SaveChangesAsync();

    return entity;
}

树实体 class 如下所示:

public class Tree
{
    public int Id { get; set; }
    public string Name { get; set; }
}

树实体配置如下所示(使用 EF Core 搭建):

public void Configure(EntityTypeBuilder<Tree> entity)
{
    entity.ToTable("TREES");

    entity.HasIndex(e => e.Id, "SYS_C001234")
          .IsUnique();

    entity.Property(e => e.Id).HasColumnName("ID");

    entity.Property(e => e.Name).HasColumnName("NAME");
}

在我的 AppContext 上,树已注册:

public virtual DbSet<Tree> Trees { get; set; }

在数据库中,树 table 如下所示:

Column_Name | Data_Type
------------------------
ID          | NUMBER(10,0)
NAME        | NCLOB

这很奇怪,因为它在我将我的应用程序移植到 .NET 5.0 并更新所有 NuGet 包之前就起作用了...

我追踪到以下 NuGet 包更新的错误:

我无法单独更新 Devart.Data.Oracle.EFCore,因为它依赖于下面列出的 Microsoft NuGet 包。我必须一次更新所有 5 个 NuGet 包。

这次 NuGet 包更新后,我无法再保存实体了。

也许我的配置中遗漏了什么?

你知道如何解决这个问题吗?

修复了在 EF Core 5 中插入或更新时抛出“序列不包含元素”的错误。我们将在本周发布新的 public 版本的 dotConnect for Oracle。