您好,我正在尝试更新数据库中的记录,但由于某种原因,该记录未更新。我正在使用 ADO.NET Entity Framework 4.0
public void updateCredits(string username)
{
myDBEntities Entity = new myDBEntities();
User u = Entity.Users.SingleOrDefault(u => u.username == username)
u.firstname = "name";
u.credits = 11.5;
Entity.SaveChanges();
}
我尝试重新启动 VS 甚至 SQL Server,但没有成功。我做错了什么吗?
最佳答案
更改跟踪似乎存在问题。您可以尝试手动将 User
实体标记为已更改,如下所示:
public void updateCredits(string username)
{
myDBEntities Entity = new myDBEntities();
User u = Entity.Users.SingleOrDefault(u => u.username == username)
u.firstname = "name";
u.credits = 11.5;
Entity.Entry(u).State = EntityState.Modified; //<-- manually indicate the entity was changed
Entity.SaveChanges();
}
如果上面的代码有效,那么很有可能 ChangeTracking 被禁用了。
关于c# - ADO.NET 实体模型更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15991278/