c# - ADO.NET 实体模型更新

标签 c# linq ado.net entities

您好,我正在尝试更新数据库中的记录,但由于某种原因,该记录未更新。我正在使用 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/

相关文章:

c# - 没有 child 的情况下如何查找家长记录?

c# - 使用 C# 调用 C++ 程序集

c# - Gridview 数据键问题

c# - 来自列表的 SqlBulkCopy<>

c# - 在 C# 中重用 xml

c# - 通过 LINQ 插入数据时出现重复键错误但找不到具有相同值的条目

c# - LINQ 与 LINQ to Entities,分组时保持排序

c# - Linq 查询组合两个或三个表达式

sql-server - 我应该为每个表创建一个 ADO.NET 实体数据模型,还是为整个数据库创建一个 ADO.NET 实体数据模型?

c# - 如何使用实用程序类管理 SQL 连接?