gpt4 book ai didi

c# - DbContext.SaveChanges() 没有更新数据库

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:24 25 4
gpt4 key购买 nike

我正在尝试使用 Entity Framework 将实体保存到数据库中。我有处理对象更新的代码:

DbSet.Attach(entity);

之后我调用:

_context.SaveChanges();

(我在 MVC 中使用工作单元模式)

我要添加的实体的状态为“已修改”。调用 SaveChanges 不会引发异常,但返回值为 0 且数据库中的行未更新。知道为什么会这样吗?

附言我使用相同的上下文来检索实体,然后再保存它。

P.P.S 我可以发布代码,但我不知道哪个代码是相关的,因为我不知道问题出在哪里。

最佳答案

我假设该实体已经附加为先前查询的结果,或者通过 Add 将其添加为新实体。

当您通过 Attach 附加实体时,状态更改为 Unchanged。

引自this reference :

Note that entities that are already in the context in some other state will have their state set to Unchanged

由于对象已经在上下文中,您不必附加它。只需修改实体并调用 SaveChanges

关于c# - DbContext.SaveChanges() 没有更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34600464/

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