У меня есть таблица с GUID первичным ключом, в который я пытаюсь вставить вновь созданный объект, используя метод UpdateModel
ASP.NET MVC давал Контролер (дб контекст LINQ к SQL данных):Как я могу получить UpdateModel ASP.NET MVC для игнорирования первичного ключа?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
Fields field = new Fields();
field.ID = Guid.NewGuid();
try
{
UpdateModel(field);
db.Fields.InsertOnSubmit(field);
db.SubmitChanges();
return RedirectToAction("Index");
}
catch
{
return View("Edit", field);
}
}
Во-первых, кажется странным, что автогенерированные представления для редактирования и создания на модели будут включать в себя поле первичного ключа для редактирования пользователем, но их достаточно просто удалить.
Но я столкнулся с проблемой, когда вызов UpdateModel
вызывает исключение, когда первичный ключ не передается как часть коллекции форм.
Я пропустил какой-то способ пометить столбец первичного ключа как что-то, что пользователь (а по расширению, вызов UpdateModel
) не должен сбрасывать? Я мог бы добавить массив includeProperties
и оставить имя первичного ключа, но это не очень СУХОЙ).
Я также мог бы добавить скрытое поле в мою форму с использованием первичного ключа - с помощью первичного ключа GUID. Я могу сделать это в запросе GET для создания.