我有这段代码:
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));
但这不合适,知道真正的答案会是多么好。