检查具有这些值的产品是否不存在

Check that product with those values does not already excist

在 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; }
}

在我的控制器中,我想在保存产品之前进行检查,检查 ExternalId 和 ProductTypeId 是否已经存在。 意思是,应该只有一个产品,其 ExternalId 为 123,ProductTypeId 为 23。

如何将此检查添加到上面的控制器?

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);
}

尽管我不建议在您的控制器中使用这种逻辑。