在 WebAPI POST 方法中如何传递在数据库 ASP.NET 中设置为 Uniqueidentifier 的 Id?

In WebAPI POST method how to pass Id which is set to Uniqueidentifier in database ASP.NET?

我在数据库中有一个 Users table,其 Id PK 设置为 Uniqueidentifier。现在使用 Web API 我正在通过邮递员将新用户添加到数据库中。当我添加第一条记录时,它会将用户添加到数据库中,但是为了添加更多记录,它不允许我添加,因为没有生成唯一的 ID。在 Internet 上,我发现我可以为此目的使用 GUID,但无法找到如何使用 Linq 在我的控制器中传递它。这是我使用的 Post 添加新用户的方法:

[HttpPost]
public async Task<IHttpActionResult> AddNewUser([FromBody]  User user)
{              
    try
    {
        using (var newuser = new hospiceEntities())
        {
            newuser.Users.Add(new User()
            {
                id = user.Id,
                UserName = user.UserName,
                PasswordHash = user.PasswordHash,
                Discriminator = user.Discriminator,
                ApplicationId = user.ApplicationId,
                LoweredUserName = user.LoweredUserName,
                IsAnonymous = user.IsAnonymous,
                Email = user.Email,
                IsApproved = user.IsApproved,
                IsLockedOut = user.IsLockedOut,
                CreateDate = user.CreateDate,
                FailedPasswordAnswerAttemptCount = user.FailedPasswordAnswerAttemptCount,
                IsTempPassword = user.IsTempPassword,
                LockoutCount = user.LockoutCount,
                AccessFailedCount = user.AccessFailedCount,
                LockoutEnabled = user.LockoutEnabled
            }); ;
            newuser.SaveChanges();
            return Ok(Helper.SuccessResponse());
            // await newuser.SaveChangesAsync();
        }
    }
    catch (Exception ex) {
        return BadRequest(Helper.ErrorResponse(ex.Message));
    }    
}

进入数据库的第一条记录如下:

试试这个

try
    {
        user.Id=Guid.NewGuid();

        using (var newuser = new hospiceEntities())
        {
            newuser.Users.Add(user);
            
           await newuser.SaveChangesAsync();

            return Ok(Helper.SuccessResponse());
           
        }
    }
    catch (Exception ex) {
        return BadRequest(Helper.ErrorResponse(ex.Message));
    }    
}