我只是一个初学者在ASP.NET核心。我在customers表(SQL Server)中有一个日期类型的列。我想在程序中更新客户状态,但当尝试执行更新方法时,我得到错误:
无法将类型为“System.DateTime”的对象强制转换为类型"System.String“
public async Task<ActionResult<Customers>> UpdateCustomerStatus(int customer_id, char customer_status)
{
var dbcustomers = await _context.client_customers.FindAsync(customer_id);
if (dbcustomers == null)
return NotFound("Customer Not Found");
if(customer_status == 'Y' || customer_status == 'N')
{
dbcustomers.customer_status = customer_status;
}
else
{
return BadRequest("Invalid Status");
}
await _context.SaveChangesAsync();
return Ok(await _context.clients.ToListAsync());
}
我尝试在客户模型类中更改数据类型,但没有成功,并且我得到了显式Map属性的错误。
public DateOnly join_date { get; set; }
我是否在表中更改了某些内容或在程序中转换了数据类型?
1条答案
按热度按时间4xy9mtcn1#
这是official document的样本和我的测试结果。
就像我们在评论中看到的一样,错误指向了一个可能与您的模型或DTO相关的问题,该模型或DTO设置了一个字符串来存储日期时间。然后当我们使用ef-core将模型保存到表中时,我们得到了这个异常,我们需要修改模型。
测试结果。