【问题标题】:Do a copy with ef core AsNoTracking使用 ef core AsNoTracking 进行复制
【发布时间】:2018-05-02 08:29:38
【问题描述】:

我正在尝试在 ef-core 2.0 中复制一个对象。我使用了一个通过 Include ande 获取大量对象的查询,然后我使用 AsNoTracking 告诉 ef 这是一个全新的对象。

我使用默认设置,我让数据库在插入时生成 Id。但是当我使用 AsNoTracking-query 时,我仍然得到原始对象的 id,这给了我 SaveChanges 的异常。

SqlException: Cannot insert explicit value for identity column in table 'Plans' when IDENTITY_INSERT is set to OFF.

我实际上并不想更改此设置,如果我遍历对象并将 Id 更改为 0,它就可以工作。有没有什么方法可以在不遍历所有对象的情况下处理这个问题?

有没有更好的方法来创建副本?

【问题讨论】:

标签: entity-framework asp.net-core ef-core-2.0


【解决方案1】:

由于上面的 Ivan cmets 没有比这更好的答案,因此请查看此链接以获得更好的答案。在我的情况下,我以与以前相同的方式获取对象和层次结构,然后遍历对象并将 PK 设置为 0。

Replicate Entire Row In Entity Framework Core

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2018-07-30
    • 2018-07-19
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多