簡體   English   中英

無法使用 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() 方法時,出現此錯誤: Sequence contains no elements ,奇怪的是異常的來源是 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; }

在 DB 中,樹表如下所示:

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

這很奇怪,因為它在我將我的應用程序移植到 .NET 5.0 並更新所有 NuGet 包之前就已經工作了......

我將錯誤追蹤到以下 NuGet 軟件包更新:

在此處輸入圖像描述

我無法單獨更新 Devart.Data.Oracle.EFCore,因為它依賴於下面列出的 Microsoft NuGet 軟件包。 我必須一次更新所有 5 個 NuGet 軟件包。

在此 NuGet package 更新之后,我無法再保存實體了。

也許我的配置中遺漏了一些東西?

你知道如何解決這個問題嗎?

在 EF Core 5 中插入或更新時拋出“序列不包含元素”的錯誤已修復。 我們將在本周發布針對 Oracle 的 dotConnect 的新公共版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM