我有一个小的。net 5 Web Api项目。采用代码优先的方法。MS SQL。EF核心。
问题是-当控制器接收没有Id
的模型时-它失败了-"发生了一个或多个验证错误"。如果控制器收到Id: 0
- it is Ok, it works.
问题是-是否有可能在POST请求中省略Id
属性?我想从请求中完全省略Id
。
模型:
public class Playback
{
public int Id { get; set; }
[Required]
public string Video_Name { get; set; }
[Required]
public string Video_Duration { get; set; }
public string Playback_User { get; set; }
public int Playback_Duration { get; set; }
}
控制器:
public async Task<IActionResult> AddPlaybackEvent2([FromForm] Playback model)
{
Playback @event;
try
{
@event = new Playback();
@event.Video_Name = model.Video_Name;
@event.Video_Duration = model.Video_Duration;
@event.Playback_User = model.Playback_User;
@event.Playback_Duration = model.Playback_Duration;
_db.Playbacks.Add(@event);
_db.SaveChanges();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
return Ok(@event);
}
在MS SQL中检查-配置Id列的主键和标识增量
将此属性添加到模型中。如果您使用代码优先方法,则需要在模型中设置此
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }