我有一个包含单个标识列的表,我需要发送POST请求并能够检索生成的标识值。
我的代码如下:
// POST: api/XXXX
[ResponseType(typeof(MyFileDTO))]
public IHttpActionResult PostMyFile(MyFile myFile)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.MyFile.Add(myFile);
db.SaveChanges();
var dto = new MyFileDTO()
{
FileId = myFile.FileId
};
return CreatedAtRoute("DefaultApi", new { id = myFile.FileId }, dto);
}
我正在努力通过Postman测试这个POST调用。
那么,是否有一种正确的方法可以创建类似于上述情况的POST api调用,其中唯一的列是标识?
感谢。
**(更新)其他信息:** 我收到错误:
db.MyFile.Add(myFile);
db.SaveChanges();
说它的值不能为null,但我不太清楚这里需要添加什么值,因为这是一个标识列...
答案 0 :(得分:0)
找到解决这个问题的方法。
几乎有以下代码:
// POST: api/XXXX
[ResponseType(typeof(MyFileDTO))]
public IHttpActionResult PostMyFile(MyFile myFile)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.MyFile.Add(myFile);
db.SaveChanges();
// Get the highest myFile value.
long maxMyFileId = db.MyFile.Max(p => p.MyFileId)
var dto = new MyFileDTO()
{
FileId = maxMyFileId
};
return Ok(Dto);
}
不确定这是否是正确的方法,但就目前而言,它似乎解决了我能够获取列值的问题。
如果有的话,会感激任何其他答案。