【问题标题】:How to get the id for insertion in to a DB in WebApi using Entity Framework?如何使用实体框架获取 id 以插入 Web Api 中的数据库?
【发布时间】:2016-08-07 11:11:11
【问题描述】:

只是尝试使用 Azure 和 WebApi。

有这个模型:

public class ModelClass
{
    public int Id {get;set;}
    public int Model {get;set;}
}

有这个方法,创建一个新资源。

[ResponseType(typeof(ModelClass))]
public IHttpActionResult PostModelClass(ModelClass obj)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    dbContext.ModelClass.Add(bankModel);
    dbContext.SaveChanges();

    return CreatedAtRoute("DefaultApi", new { id = ModelClass.Id }, obj);
}

但是,这迫使我提供一个名为 id 的参数,该参数必须是唯一的。

如何将此责任委托给数据库以创建新的id

目前,我可以考虑从数据库中获取最后更新的 id,然后将其提供给 obj。

但是有没有更清洁或内置的方法?

【问题讨论】:

    标签: c# asp.net-mvc entity-framework asp.net-web-api


    【解决方案1】:

    在标准情况下(按照惯例,ID 是主键),当您保存对数据库的更改时,ID 属性会由 EF 自动填充。

    【讨论】:

    • 好的,所以我应该使用[Key] 来装饰我必须充当主键的属性。明白了。谢谢
    • @nowhewhomustnotbenamed.:根据约定,名为 Id(EntityName)Id 的字段将自动被 EF 视为主键(除非您将其他内容指定为[Key])。因此,您可以添加[Key] 属性以清楚起见 - 但并非绝对需要
    猜你喜欢
    • 2012-08-30
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多