【发布时间】:2016-07-28 11:39:49
【问题描述】:
SaveChanges 没有反映在数据库中
我有以下代码
public async Task<int> Post([FromBody] UserEntry userEntry)
{
UserEntry dbUserEntry;
using (DBContext db = new DBContext())
{
// update
dbUserEntry = this.db.UserEntries
.Where(u => u.UserEntryID == userEntry.UserEntryID)
.Include(u => u.EntryPlayers.Select(y => y.Player))
.FirstOrDefault();
dbUserEntry.TeamName = userEntry.TeamName;
dbUserEntry.EntryPlayers = userEntry.EntryPlayers;
//db.Entry(dbUserEntry).State = EntityState.Modified;
return db.SaveChanges();
}
}
我在某处读到需要将状态设置为已修改,但如果我取消注释该行
//db.Entry(dbUserEntry).State = EntityState.Modified;
我得到错误:-
一个实体对象不能被多个 IEntityChangeTracker 实例引用。
关于如何让 SaveChanges 发挥作用的任何想法?
【问题讨论】:
-
this中的dbUserEntry = this.db.UserEntries是错字吗?因为如果不是,那就是你的问题。您可能在控制器中定义了另一个上下文。 -
您是否启用了 AutoDetectChanges?
-
感谢 SOfanatic。你说得对。从其他地方复制并粘贴错误。谢谢
标签: entity-framework