在我发出POST请求之前,应用程序应该比较输入对象是否存在于数据库表中。我的意图的问题是,db表有两个主键,当我尝试比较它时,它告诉我文章不存在,因为第一个PK Id
会自动增加。所以,对我来说重要的是第二个PK isin
。
以下代码不起作用:
[HttpPost]
[ResponseType(typeof(Fon))]
public async Task<IHttpActionResult> PostFond(Fon fon)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var fonds = db.Fon.Find(fon.Id, fon.isin);
if (fonds.isin != null)
{
return BadRequest(ModelState); //ISIN already exists.
}
db.Fon.Add(fon);
await db.SaveChangesAsync();
return CreatedAtRoute("DefaultApi", new { id = fon.Id }, fon);
}
如何检查isin是现有的还是新的?!
编辑:(解决方案)
我尝试了很多东西并找到了正确的解决方案。以下代码说明了这一点:
var fonds = db.Fon
.Where(f => f.isin == fon.isin)
.FirstOrDefault();
if (fonds != null)
{
return Conflict();
}
db.Fon.Add(fon);
await db.SaveChangesAsync();