gpt4 book ai didi

entity-framework - Entity Framework - 为什么显式将实体状态设置为已修改?

转载 作者:行者123 更新时间:2023-12-03 06:18:24 24 4
gpt4 key购买 nike

官方文档说要修改实体,我检索 DbEntityEntry 对象并使用属性函数,或者将其状态设置为已修改。它使用以下示例

Department dpt = context.Departments.FirstOrDefault();
DbEntityEntry entry = context.Entry(dpt);
entry.State = EntityState.Modified;

我不明白第二条和第三条语句的目的。如果我像第一个语句那样向框架询问实体,然后修改 POCO,如下所示

dpt.Name = "Blah"

如果我随后要求 EF 进行 SaveChanges(),则该实体的状态为 MODIFIED(我猜测是通过快照跟踪,这不是代理),并且更改将在没有需要手动设置状态。我在这里遗漏了什么吗?

最佳答案

在您的场景中,您确实不必设置状态。更改跟踪的目的是发现您已更改附加实体上的值并将其置于已修改状态。对于分离的实体(在没有更改跟踪的情况下加载的实体或在当前上下文之外创建的实体),手动设置状态非常重要。

关于entity-framework - Entity Framework - 为什么显式将实体状态设置为已修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com