我目前正在使用ASP.NET MVC4并尝试将新条目添加到以Integer
为主键的表中。我知道身份问题并将其设置为true,我也知道GUID但它们用于唯一标识符而不是整数。
这是我添加新行的地方,因为我知道我的主键是名为SheetId
if (ModelState.IsValid)
{
var sheet = db.Sheets.Create();
sheet.Email = Request.Cookies["UserInfo"]["Email"];
sheet.ApprovedDays = "0000000";
sheet.DateStarted = DateTime.Now;
db.Sheets.Add(sheet);
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
这是图纸模型
public class Sheet
{
[Key]
[Required]
public int SheetId { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
public string Email { get; set; }
public string ApprovedDays { get; set; }
//
public virtual UserModel UserModel { get; set; }
public virtual ICollection<Task> Task { get; set; }
}
这是我得到的例外
异常详细信息:System.Data.SqlServerCe.SqlCeException:无法修改列。 [列名= SheetId]
答案 0 :(得分:1)
您可以在密钥上尝试[DatabaseGenerated(DatabaseGeneratedOption.Identity)],如下所示:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SheetId { get; set; }
答案 1 :(得分:1)
我通过仅删除我的.EDMX上下文文件并重新重新创建它来解决问题,并且它有效! 还要感谢您的努力人员
答案 2 :(得分:0)
删除密钥上的[必需];
[Key]
public int SheetId { get; set; }