实体框架编辑主键并添加行

时间:2014-12-11 17:00:10

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

我有一个模型的编辑/创建页面。当用户提交表单时,它将被添加或更新到数据库。

在那之后,我想将它们重定向回相同的表格,同时保留相同的数据,清除id以及其他一些值。

public ActionResult AddProduct(MyModel myModel)
{
    // Save
    if (myModel.AuditID != 0) {
        Update(myModel);
    } else {
        Add(myModel);
    }

    // Set some values so it's seen as new, as well as some 
    // other values that need to be cleared
    myModel.ID = 0;
    myModel.Product = "";

    // Edit/Create page
    ActionResult ret = EditCreateKnownRow(myModel);

    return ret;
}

我希望它被视为一个全新的实体,但我得到一个InvalidOperationException这些细节:

The property 'ID' is part of the object's key information and cannot be modified.

我得到的实体框架不想处理可能存在的外键约束,但这与我正在寻找的内容无关。有没有办法将其视为新实体而无需创建复制构造函数?

感谢。

会对ModelState做些什么帮助吗?我在修改密钥之前尝试了ModelState.Remove(myModel.ID.ToString());ModelState.Clear();,但它没有用。

0 个答案:

没有答案