Comment empêcher le controller d'envoyer la colonne d'identité à la database

Action du controller:

[HttpPost] [ValidateAntiForgeryToken] public ActionResult New_Shelf(Shelf shelf) { shelf.User_Id = int.Parse(Request.Cookies["UserId"].Value); db_shelf.Shelves.Add(shelf); db_shelf.SaveChanges(); return RedirectToAction("Index", "Home"); } 

Modèle:

 namespace Book_shelf.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; public partial class Shelf { [DatabaseGeneratedAtsortingbute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public ssortingng Name { get; set; } public int Size { get; set; } [ForeignKey("Id")] public int User_Id { get; set; } } } 

Vue:

  @model Book_shelf.Models.Shelf @using (Html.BeginForm("New_Shelf", "Home", FormMethod.Post)) { @Html.AntiForgeryToken() @Html.ValidationSummary(true) <label style="font-family:sans-serif">Name</label> <br /> @Html.TextBoxFor(a => a.Name) <br /> <br /> <label style="font-family:sans-serif">Size</label> <br /> @Html.TextBoxFor(a => a.Size) <br /> <br /> <button class="btn btn-sm" type="submit"> Add</button> } 

Erreur:

Impossible d'insert une valeur explicite pour la colonne d'identité dans la table 'Shelf' lorsque> IDENTITY_INSERT est défini sur OFF.

Je suis nouveau à ASP.net MVC et Entity Framework. J'essaye d'insert une nouvelle rangée pour ma table «Shelf». Mais il semble que la vue envoie Id aussi bien en postant des données à Action. J'ai essayé de noter la valeur de shelf.Id dans l'action et c'était ' 0. Comment puis-je empêcher l'affichage d'envoyer des données dans la propriété Id?

Le problème était dans le file shelf.edmx, j'ai vérifié les propriétés de la colonne Id dans le concepteur de la table et défini la valeur "storedGeneratedPattern" sur "identity" qui était précédemment défini sur "none".