Entity Frameworkを使用している場合(質問にタグとしてリストしたためだと思います)、オブジェクトは、エンティティコンテキストによって生成された場合にのみ変更を追跡します。
User someUser = dbEntities.Users.Single(x => x.Username == "test");
someUser.Name = "changed name";
db.SaveChanges();
そのコードは変更を検出して永続化します。
User someUser = new User()
{
Username = "test" //assuming there is already user called test in the database.
}
この方法でユーザーを作成すると、EFコンテキストが変更を検出できなくなります。代わりに、データベースからエンティティをロードして更新し、変更を永続化する必要があります。
string username = "test";
User someUser = db.Users.Single(x => x.Username == username);
TryUpdateModel(someUser, valueProvider); //valueProvider is usually a form collection of some sort, but could be anything that implements IValueProvider.
db.SaveChanges();
これにより、エンティティをプルして更新し、変更を保存することができます。