gpt4 book ai didi

c# - 没有 EntityKey 的 MemberwiseClone

转载 作者:行者123 更新时间:2023-11-30 22:22:46 24 4
gpt4 key购买 nike

是否可以在没有 EntityKey 的情况下 MemberwiseClone 从 ObjectContext 检索到的对象?我在 C# 中使用 Entity Framework 4.1

如果我尝试更改 Id,则会出现以下异常:

属性'Id'是对象关键信息的一部分,不能修改

如果我尝试将 EntityKey 设置为 null:

只有当属性的当前值为 null 时,才能设置 EntityKey 属性。

我的代码:

Offer newOffer = offer.ShallowCopy();
// does not work...
newOffer.EntityKey = null;
/ does not work either...
newOffer.Id = Guid.NewGuid()
this._context.Add<Offer>(newOffer);
this._context.SaveChanges();

...

public partial class Offer
{
public Offer ShallowCopy()
{
return (Offer)this.MemberwiseClone();
}
}

有没有人知道我的问题的简单解决方案?

最佳答案

MemberwiseClone 复制所有成员。如果你想避免复制任何成员,你必须自己克隆。这是不可能的,这是有充分理由的。 EntityKey 唯一标识实体,它是不可变的。一旦设置,您就无法更改它,因此您无法更改用于构建 key 的任何属性(在模型中标记为 key 的属性)。 EntityKey 也是引用类型,因此通过创建原始实体的成员智能克隆,您将引用相同的键实例。这样的实体将毫无用处。

关于c# - 没有 EntityKey 的 MemberwiseClone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com