在WebAPI项目中,我有以下控制器;
public async Task<IHttpActionResult> PostProduct(Product product)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.Products.Add(product);
await db.SaveChangesAsync();
return Ok(product);
}
基于此模型
public class Product
{
public int Id { get; set; }
public int ExternalId { get; set }
public string Title { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime Created { get; set; }
public string Description { get; set; }
public int ProductTypeId { get; set; }
public virtual ProductType IncidentType { get; set; }
public virtual ICollection<Manufacture> Manufactures { get; set; }
}
在我的控制器中,我想在保存产品之前进行检查,检查带有ProductTypeId的ExternalId togethr是否已经不存在。 意思是,应该只有一个产品,其ExternalId为123 togethr,ProductTypeId为23。
如何将此检查添加到上面的控制器?
答案 0 :(得分:1)
public async Task<IHttpActionResult> PostProduct(Product product)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if(db.Products.Any(x => x.ExternalId == product.ExternalId && x.ProductTypeId == product.ProductTypeId))
{
return Conflict();
}
db.Products.Add(product);
await db.SaveChangesAsync();
return Ok(product);
}
虽然我不建议你在控制器中使用那种逻辑。