【问题标题】:What does the DBContext.Entry do?DBContext.Entry 有什么作用?
【发布时间】:2013-02-09 08:16:39
【问题描述】:
[HttpPost]
public ActionResult Edit(Movie movie)
{
    if (ModelState.IsValid)
    {
        db.Entry(movie).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(movie);
}

这个动作接收一个电影模型并在数据库中更新它。
但我不知道怎么做。
movie 对象没有附加到数据库,那么实体框架如何知道数据库中的哪一行应该更新?

我确定 Entry 方法与它有关,但我真的不知道这个方法是做什么的。我读到它提供了信息,但我不明白如何通过更改条目的State 来附加并由DBContext 跟踪。

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework dbcontext


    【解决方案1】:

    它只是将实体附加到 dataContext。否则,您将不得不使用主键搜索实体,然后编辑值并保存。

    如果您知道某个实体已经存在于数据库中但可能已对其进行了更改,那么您可以告诉上下文附加该实体并将其状态设置为已修改。 http://msdn.microsoft.com/en-US/data/jj592676

    【讨论】:

    • 但是你有 Attach 方法。
    • 因此该方法知道实体类的哪些属性是键,然后可以在内部制定搜索以通过其键获取实体并附加它。正确的?如果是这样,那就太棒了。
    • @Idan here 的区别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-07-17
    • 2014-09-13
    相关资源
    最近更新 更多