微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 如何使用EF仅更新单个字段

这是当前的基本代码
[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit(Registration registration)
    {
        if (ModelState.IsValid)
        {
            db.Entry(registration).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(registration);
    }

我在注册表中有大约15个字段,我怎么只想更新“日期”字段,我在这里收到的对象是“注册”,它只有日期值,但是当前代码更新所有条目,什么我想要的是更新“日期”字段,其值已经在“注册”中获得

帮助将不胜感激:)

解决方法

将其附加到Unchanged状态的上下文中,并仅将Date设置为modified.
if (ModelState.IsValid)
{
    db.Registrations.Attach(registration); // attach in the Unchanged state
    db.Entry(registration).Property(r => r.Date).IsModified = true;
    // Date field is set to Modified (entity is Now Modified as well)
    db.SaveChanges();
    return RedirectToAction("Index");
}

你说传入的实体只有日期填写,希望也有一个Id.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐