Asp.net web api ASP.NETWebAPI只使用一个标识列发布到表

Asp.net web api ASP.NETWebAPI只使用一个标识列发布到表,asp.net-web-api,identity-column,Asp.net Web Api,Identity Column,我有一个带有单个标识列的表,在这里我需要发送POST请求并能够检索生成的标识值 我的代码如下: // POST: api/XXXX [ResponseType(typeof(MyFileDTO))] public IHttpActionResult PostMyFile(MyFile myFile) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.MyFile.Ad

我有一个带有单个标识列的表,在这里我需要发送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);
}
// 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);
}
我正努力通过邮递员来测试这封邮件

那么,是否有一种正确的方法来创建类似于上述情况的POST api调用,其中唯一的列是一个标识

谢谢

**更新其他信息:** 我在线路上遇到一个错误:

db.MyFile.Add(myFile);
db.SaveChanges();

这里说值不能为null,但我不太确定需要在这里添加什么值,因为这是一个标识列…

找到了一种解决方法

代码大致如下所示:

// 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);
}
// 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);
}
不确定这是否是正确的方法,但现在,它似乎解决了我获取列值的问题

如果有其他答案,我们将不胜感激