首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >实体框架6:除ID外的克隆对象

实体框架6:除ID外的克隆对象
EN

Stack Overflow用户
提问于 2014-09-08 17:12:45
回答 5查看 71.9K关注 0票数 63

在我的MVVM程序中,我有一个Model类(比如MyModel),我有一个从数据库读取数据的实例(使用实体框架)。在检索对象时,我将所有数据呈现给用户。稍后,用户将修改一些字段。

我想要的是创建相同的对象,除了它的ID (因为该ID是主键并自动递增)。

那么,我该如何处理这个问题呢?我不想一个接一个地复制所有字段,这不是一个健壮的方法。因为也许在未来模型可能会被修改,所以我必须在克隆方法中考虑到这一点。

那么,有没有什么很好的方法来复制对象,并且当保存到数据库中时,它的ID会再次自动递增呢?(将ID设置为null会给我一个编译器错误,因为它的类型是int)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-09-08 18:29:51

我注意到不需要复制。显然,在向数据库添加模型的实例时(即使ID设置为数据库中已存在的实例),实体框架会在数据库中插入新行并自动递增其主键。所以这个功能已经内置到EF中了。我不知道,抱歉。

为了清楚起见,这里有一个例子:

票数 72
EN

Stack Overflow用户

发布于 2017-07-22 04:24:00

Lori Peterson建议在EF6中使用.AsNoTracking()执行克隆。我正在使用这个方法,并且可以确认它是有效的。您甚至可以包含子对象。

从数据集中检索一个或多个实体时,可以告诉entity Framework不要跟踪对该对象所做的任何更改,然后将该实体作为新实体添加到dataset中。使用.AsNoTracking时,上下文不知道有关现有实体的任何信息。

票数 61
EN

Stack Overflow用户

发布于 2015-04-09 14:36:00

使用ObjectContext时,QuantumHive提供的答案不起作用。

在这种情况下返回的错误是:

要正确克隆实体框架对象(至少在EF6.0中)是:

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25720803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档