小编Mak*_*aks的帖子

EF 核心。当 IDENTITY_INSERT 设置为 OFF 时,无法在表“Book”中插入标识列的显式值

现在我正在致力于将现有项目从网络框架迁移到网络核心。当它看起来可以工作时,我遇到了一个奇怪的异常。所有地方都为数据库实体 PK 传递“-1”值,但它不适用于 ef core。下面是两个简单的再现测试。

    // 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 …
Run Code Online (Sandbox Code Playgroud)

entity-framework-core ef-core-3.1

2
推荐指数
1
解决办法
5281
查看次数

标签 统计

ef-core-3.1 ×1

entity-framework-core ×1