我有基本模型User
和两个附加模型UserCreateModel
和UserEditModel
. UserCreateModel
工作得很好并且创建了用户,但是当我尝试编辑用户时它给了我错误。
我不明白他为什么对 datetime 采取行动,因为它在数据库中已经存在有效的 DateTime 属性。我想做的就是更新Name
属性。我在这里做错了什么?
错误
将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。该语句已终止。
控制器
public HttpResponseMessage PutUser(int id, UserEditModel user)
{
if (!ModelState.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
if (id != user.Id)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
db.Entry(user).State = EntityState.Modified;
try
{
db.SaveChanges(); // Exception here, all validation passed with success
}
catch (DbUpdateConcurrencyException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
return Request.CreateResponse(HttpStatusCode.OK);
}
模型
public class User
{
public int Id { get; set; }
public virtual DateTime CreatedDateTime { get; set; }
public virtual string Username { get; set; }
public virtual string Password { get; set; }
public virtual string PasswordSalt { get; set; }
public virtual string AccessToken { get; set; }
public virtual string Name { get; set; }
}
public class UserEditModel : User
{
[Required]
public override string Name { get; set; }
}