私はこのコードを持っています:
var user = new User { UserName = "whatever", LastLoginOn = DateTime.UtcNow };
_baseRepository.Context.Users.Attach(user);
_baseRepository.Context.Entry(user).Property(p => p.LastLoginOn).IsModified = true;
_baseRepository.SaveChanges();
問題は、次のエラーが発生することです。"Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries."
UserId を使用すると機能しますが、その ID を取得するにはデータベースを往復する必要があります。ユーザー名でルックアップを行う方法はありますか?
編集
回避策として、私はこれを行いました:
_baseRepository.Context.Database.ExecuteSqlCommand(string.Format("UPDATE [dbo].[User] SET LastLoginDate = SYSUTCDATETIME() WHERE [UserName] = '{0}'", username));
しかし、これは適切ではなく、本当の答えが何であるかを知ることは素晴らしいことです.