![](/img/trans.png)
[英]Scaffolding for .net core 3 and Devart.Data.Oracle.EFCore ends with error
[英]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.