【发布时间】:2019-10-22 18:37:11
【问题描述】:
我对 Entity Framework 6 有疑问。
我正在尝试更新现有实体,但我想完全替换它,而不是一个一个地更新每个属性。当我替换一个属性并调用SaveChanges() 时,它会很好地保存到数据库中,但是如果我想简单地替换整个对象,它什么也不做。
下面注释掉的部分显然可以工作,但是当我尝试替换对象时(在我的例子中是 ninja.ToModel() 对象,它来自 Ninja 视图模型)它不起作用。
显然我遗漏了一些东西,我认为这与Attach() 有关,但到目前为止,我在互联网上找到的所有内容都让我感到困惑。什么是完全更新我想要的对象的正确方法?
public void SaveNinja()
{
using (var context = new ManagerEntities())
{
Ninja nin = context.Ninjas.Find(ninja.ToModel().Id);
// nin.Name = ninja.Name;
// nin.Strength = ninja.Strength;
// nin.Agility = ninja.Agility;
// nin.Intelligence = ninja.Intelligence;
// nin.Gold = ninja.Gold;
context.SaveChanges();
}
Close();
}
【问题讨论】:
标签: c# entity-framework-6 dbcontext entities