2

こんにちは、データベースからレコードを更新しようとしていますが、何らかの理由でレコードが更新されません。ADO.NET エンティティ フレームワーク 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 を再起動しようとしましたが、うまくいきませんでした。私は何か間違ったことをしていますか?

4

1 に答える 1

1

変更追跡に問題があるようです。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 が無効になっている可能性が高くなります。

于 2013-04-13T18:35:10.837 に答える