检查具有这些值的产品是否不存在
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);
}
尽管我不建议在您的控制器中使用这种逻辑。
在 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);
}
尽管我不建议在您的控制器中使用这种逻辑。