实体框架查询后的数据结果不正确

时间:2016-09-08 15:41:21

标签: asp.net entity-framework

好的,我有这个查询

  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();

强制从数据库查询

0 个答案:

没有答案