【发布时间】:2021-05-15 18:54:22
【问题描述】:
现在我正在将现有项目从网络框架迁移到网络核心。当它看起来工作时,我遇到了一个奇怪的异常。所有地方都为 db 实体 PK 传递了“-1”值,但它不适用于 ef 核心。下面两个简单的复现测试。
// EF core test
[Test] // failed
public void Test1()
{
var options = new DbContextOptionsBuilder<ConsoleApp1.Context>()
.UseInMemoryDatabase(databaseName: "Data")
.ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning))
.Options;
var context = new ConsoleApp1.Context(options);
context.Books.Add(new ConsoleApp1.Book { Id = -1 });
context.Books.Add(new ConsoleApp1.Book { Id = 0 });
context.Books.Add(new ConsoleApp1.Book { Id = -1 });
Assert.Pass();
}
// EF 6 test
[Test] // passed
public void Test2()
{
var context = new ConsoleApp2.Context();
context.Books.Add(new ConsoleApp2.Book { Id = -1 });
context.Books.Add(new ConsoleApp2.Book { Id = 0 });
context.Books.Add(new ConsoleApp2.Book { Id = -1 });
Assert.Pass();
}
我已经尝试了许多有关实体配置和状态的解决方法,但似乎没有任何效果。 我相信这个问题已经有人解决了。 请分享解决方案或您的想法。
【问题讨论】:
标签: entity-framework-core ef-core-3.1