c# - 如何在 Entity Framework 中基于旧实体创建新实体?

标签 c# .net entity-framework duplicates

我需要

  1. 将一些实体加载到内存中,

  2. 改变它的几个'标量'

  3. 属性值 - 无需触及其导航属性。和

  4. 将它们作为新实体保存到数据库中。

    我如何在 EntityFramework 中实现这一点,是否足以将对象的 ID 设置为 NULL 以将其保存为新实体或者应该是什么技巧?

最佳答案

您只需更改 entity state从 Modified 到 Added,Entity Framework 将执行插入而不是更新。

使用 DbContext API 的示例:

DbContext context = // ...
foreach (var entityEntry in context.ChangeTracker.Entries())
{
    if (entityEntry.State == EntityState.Modified)
         entityEntry.State = EntityState.Added;
}
ct.SaveChanges();

关于c# - 如何在 Entity Framework 中基于旧实体创建新实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191302/

相关文章:

c# - 使用 Entity Framework 限制查询大小

c# - EF Core 3.1 到 5 更新 -> IEntityType.GetTableName

c# - Windows 上可靠的短时间跨度测量

entity-framework - 企业数据审计

vb.net - 在Visual Studio 2013库中找不到 Entity Framework

c# - 比较日期没有给我选择的日期

.net - WPF,设计器中的 'Object reference not set to an instance of an object'

模拟点击链接的C#代码

c# - 不能定义没有 PK 的表

.net - 使用[JsonConverter]属性时,我的JsonConverter类中的StackOverflowException