【发布时间】:2020-06-27 10:02:41
【问题描述】:
我正在尝试使用 ASP.NET Core MVC 和 Angular 从 SQL 数据库更新用户详细信息。我想在不将 UserID 发送到 API 的情况下更新用户,因此我必须在 PUT 方法中获取 UserId。 我使用实体和身份来创建数据库。
使用以下代码我收到此错误:
Code: "ConcurrencyFailure"
Description: "Optimistic concurrency failure, object has been modified."
我怎样才能使它起作用?
PUT 方法
[HttpPut]
[Route("Update")]
//api/ApplicationUser/Update
public async Task<Object> PutApplicationUser(UserAccountModel model)
{
var user = _userManager.GetUserId(HttpContext.User);
var applicationUser = new UserAccount()
{
UserName = model.UserName,
FirstName = model.FirstName,
LastName = model.LastName,
Email = model.Email,
PhoneNumber = model.PhoneNumber,
VerificationCode = "",
ExpCode = new DateTime(2020, 8, 18),
SecurityStamp = Guid.NewGuid().ToString()
};
try
{
var result = await _userManager.UpdateAsync(applicationUser);
return result;
}
catch (Exception ex)
{
throw ex;
}
}
用户帐户模型
public class UserAccount : IdentityUser
{
[Column(TypeName = "nvarchar(30)")]
public string FirstName { get; set; }
[Column(TypeName = "nvarchar(30)")]
public string LastName { get; set; }
[Column(TypeName = "nvarchar(30)")]
public string VerificationCode { get; set; }
[Column(TypeName = "smalldatetime")]
public DateTime ExpCode { get; set; }
public virtual ICollection<File> File { get; set; }
public virtual ICollection<Folder> Folder { get; set; }
}
【问题讨论】:
标签: c# asp.net asp.net-core asp.net-web-api concurrency