在对 .Net Core Web Api 的 POST 请求中省略 Id 属性
Omit Id property in POST request to .Net Core Web Api
我有一个小的 .Net 5 Web Api 项目。
应用代码优先方法。女士SQL。 EF 核心。
问题是 - 当控制器接收没有 Id
的模型时 - 它失败并显示 - “发生一个或多个验证错误。”。如果控制器收到 Id: 0
- 没问题,它可以工作。
问题是 - 是否可以在 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; }
我有一个小的 .Net 5 Web Api 项目。 应用代码优先方法。女士SQL。 EF 核心。
问题是 - 当控制器接收没有 Id
的模型时 - 它失败并显示 - “发生一个或多个验证错误。”。如果控制器收到 Id: 0
- 没问题,它可以工作。
问题是 - 是否可以在 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; }