好的,我有这个查询
public bool Save(PresseViewModel p)
{
var presse = PresseService.Instance.Get(p.Id);
presse.title = p.Title;
presse.sammenfatning = p.Sammenfatning;
presse.HTML = p.HTML;
try
{
PresseService.Instance.Save(presse);
return true;
}
catch (Exception e)
{
return false;
}
}
我正在尝试仅使用选定的字段更新现有记录。 该模型有20多个字段,但现在我只是尝试更新3个字段。
我做的是先从db获取原始记录,然后用新值填充这些字段,然后保存!! 然后一切都好!。
现在问题是
如果“。保存”失败怎么办?并转移到Catch Exception,因此通常不会保存任何内容,原始值将保持不变吗?好的,继续前进并忽略它,
好了,现在我想获得相同的记录并将其填充到我的页面,然后发生奇怪的事情,它给了我不正确的结果,它渲染的3个字段是我之前尝试保存的3个字段(但是失败了)保存),
我认为问题是这一行
var presse = PresseService.Instance.Get(p.Id);
presse.title = p.Title;
presse.sammenfatning = p.Sammenfatning;
presse.HTML = p.HTML
该行将存储在内存(或其他地方)的某个位置,无论它是否已保存,因此下次查询该ID时,它将提供我之前设置的值。
现在我的问题是如何避免它或者解决这个问题的方法,
并且尽可能地我不想使用这一行_db.Entry<Pressemeddelelser>(result).Reload();