保存新实体和编辑的控制器

时间:2012-06-12 16:41:56

标签: asp.net-mvc-3 entity-framework-4

MVC3和Entity框架新手在这里。我正在尝试编写一个控制器来处理编辑和创建新条目。这是我到目前为止的代码(大部分是自动生成的)

    //POST: /License/Save
    [HttpPost]
    public string Save(LICENSE_USER license_user)
    {
        if (license_user.License_ID != 0)
        {
            if (ModelState.IsValid)
            {
                db.Entry(license_user).State = EntityState.Modified;
                db.SaveChanges();
                return "Save Complete";
            }
        }
        else
        {

            if (ModelState.IsValid) {
                db.LICENSE_USER.Add(license_user);
                db.SaveChanges();
                return "New License created - " + license_user.License_ID;
            }
        }
        return "What's going on here?";
    }

它非常适合编辑,因为我在POST中包含了License_ID字段。但是,对于新条目,我排除了License_ID字段,默认为0.获取下一个License_ID字段并使用该字段更新对象的最优雅方法是什么?

1 个答案:

答案 0 :(得分:2)

使数据库中的License_ID列成为主要自动增量键。这样,您无需在插入新实体时手动设置它。数据库会照顾。

在您的EDMX模型中,此属性的StoreGeneratedPattern属性必须设置为Identity