【发布时间】:2016-01-04 21:46:42
【问题描述】:
我正在尝试使用实体框架将实体保存到数据库中。我有这个处理对象更新的代码:
DbSet.Attach(entity);
然后我打电话给:
_context.SaveChanges();
(我在 MVC 中使用工作单元模式)
我要添加的实体的状态为“已修改”。调用 SaveChanges 不会引发异常,但返回值为 0 并且数据库中的行未更新。知道为什么会这样吗?
附:我使用相同的上下文来检索实体,然后再保存它。
P.P.S 我可以发布代码,但我不知道哪个代码是相关的,因为我不知道问题出在哪里。
【问题讨论】:
-
附加实体之后是否改变了它的状态?
-
根据docs,DbSet.Attach 将状态重置为
Unchanged。 -
如果您从同一上下文中获取实体,它将被跟踪 - 无需附加。 msdn.microsoft.com/en-us/data/jj592676.aspx
-
@YacoubMassad 不,我最后调用的是 _context.SaveChanges
-
可以附加,修改状态,然后保存更改吗?
标签: c# .net entity-framework ef-code-first