【发布时间】:2013-11-23 22:18:12
【问题描述】:
我的目标是复制现有实体,稍微修改一下,然后插入修改后的版本。
我尝试了两种似乎都有效的不同方法:
var thing = context.Things.Where(x => x.SomeID == someid).AsNoTracking().Single();
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
var thing = context.Things.Where(x => x.SomeID == someid).Single();
context.Detach(thing);
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
据我所知,他们都在实现我的目标。其中一个比另一个更好,还是它们都一样好(或错误!?)
【问题讨论】:
-
仅供参考,因为您使用了
FirstOrDefault,所以thing可能是null。在尝试使用thing之前,您需要检查null。 -
@JohnSaunders - 谢谢。我将其编辑为使用 Single。
标签: c# entity-framework