der*_*783 18 c# .net-6.0 ef-core-6.0
问题:如何解决此错误:
Microsoft.EntityFrameworkCore.DbUpdateException:键值“{Id:1}”的实体类型“SomeEntity”的实例缺少必需的属性“{”Prop1”、“Prop2”}”
我有一个使用 EF Core 内存提供程序的测试套件。我最近将解决方案中的所有 EF Core NuGet 包升级到目标版本 6.0.1。
在运行升级后的一些测试时,我遇到了上述错误。
错误中提到的两个属性都是字符串。
我查看了一些 Github 问题和 Stack Overflow 帖子,搜索引擎在 DuckDuckGo 搜索错误消息时会点击这些帖子,但这并没有发现任何有趣的内容。
受影响的类有一个如下的配置方法:
public void Configure(EntityTypeBuilder<SomeType> builder)
{
builder
.Property(someType => someType.Prop1)
.IsRequired();
builder
.Property(someType => someType.Prop2)
.IsRequired();
}
Run Code Online (Sandbox Code Playgroud)
der*_*783 33
显然EFCore 内存提供程序的 v6 强制执行.IsRequired().
我的情况的解决方案是更新测试,以便string错误消息中提到的属性不是null。
instanceOfSomeType.Prop1 = "NotNull";
instanceOfSomeType.Prop2 = "NotNull";
Run Code Online (Sandbox Code Playgroud)
或者,您可以禁用此功能:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.LogTo(Console.WriteLine, new[] { InMemoryEventId.ChangesSaved })
.UseInMemoryDatabase("UserContextWithNullCheckingDisabled", b => b.EnableNullChecks(false));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6316 次 |
| 最近记录: |