C# 自动增量问题:无法修改该列。[列名=用户ID]

C# 自动增量问题:无法修改该列。[列名=用户ID],c#,sql,asp.net-mvc-4,sql-server-ce,auto-increment,C#,Sql,Asp.net Mvc 4,Sql Server Ce,Auto Increment,我目前正在使用ASP.NET MVC4,并尝试将一个新条目添加到一个表中,该表的主键为Integer。我知道标识问题并将其设置为true,我也知道guid,但它们用于唯一标识符,而不是整数 在这里,我添加了一个新行,知道我的主键是一个名为SheetId if (ModelState.IsValid) { var sheet = db.Sheets.Create(); sheet.Email = Request.Cookies["UserInfo"]["Email"]; shee

我目前正在使用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; }
}
公共课程表
{
[关键]
[必需]
公共int SheetId{get;set;}
[必需]
公共日期时间起始日期{get;set;}
[必需]
公共字符串电子邮件{get;set;}
公共字符串ApprovedDays{get;set;}
//
公共虚拟用户模型用户模型{get;set;}
公共虚拟ICollection任务{get;set;}
}
这是我得到的例外

异常详细信息:System.Data.SqlServerCe.SqlCeException:无法修改该列。[列名=表单ID]


取下钥匙上的[必需]

[Key]
public int SheetId { get; set; }

您可以在如下键上尝试[DatabaseGenerated(DatabaseGeneratedOption.Identity)]:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int SheetId { get; set; }

我已经解决了这个问题,只删除了我的.EDMX上下文文件并重新创建了它,瞧,它成功了!!
还感谢大家的努力,伙计们,

SheetId列的
工作表
模型是什么样子的?可能db.Sheets.Create()会给SheetId赋值,但数据库例外为空,因此可以自动生成。@Joachim Isakson:我已经添加了工作表Model@juhan_h:在db.Sheets.Create()之后SheetId的值为0。仍然存在相同的异常exists@Osama哪个SQL CE版本?